如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第4章TMS320C54x汇编语言程序设计4.1.1汇编语言源程序格式1.源文件格式1.源文件格式2.标号3.助记符4.操作数4.操作数5.注释4.1.2汇编语言中的常数与字符串4.1.3汇编源程序中的符号4.1.3汇编源程序中的符号4.1.4汇编源程序中的表达式4.1.4汇编源程序中的表达式4.1.4汇编源程序中的表达式3.有效定义的表达式3.有效定义的表达式4.1.4汇编源程序中的表达式4.1.4汇编源程序中的表达式5.可重新定位符号和合法表达式4.1.5汇编伪指令(AssemblerDirectives)4.1.5汇编伪指令1.定义段的伪指令【例4.1.4】段伪指令的使用。【例4.1.4】段伪指令的使用。【例4.1.4】段伪指令的使用。【例4.1.4】段伪指令的使用。【例4.1.5】段伪指令的使用。4.1.5汇编伪指令2.初始化常数的伪指令3.条件汇编伪指令(P89)3.条件汇编伪指令4.1.6宏定义和宏调用4.1.6宏定义和宏调用(P90)宏定义的格式(P90)2.宏调用3.宏扩展4.2TMS320C54x软件开发过程(2)’C54x的开发工具(1)代码生成工具:(1)代码生成工具:(2)代码调试工具:4.3汇编语言程序的编辑、汇编和链接过程汇编语言程序的编辑、汇编和链接过程示意图4.4COFF的一般概念4.4.1COFF文件的基本单元2.段的基本类型COFF目标文件中的段有两种基本类型。(1)初始化段初始化段初始化段中包含有数据或程序代码。主要有:.text段——已初始化段;.data段——已初始化段;.sect段——已初始化段,由汇编器伪指令建立的自定义段。(2)未初始化段在存储空间中,为未初始化数据保留存储空间。它包括:.bss段——未初始化段;.usect段——未初始化段,由汇编命令建立的命名段(自定义段)。3.段与目标存储器的对应关系汇编器的任务:在汇编过程中,根据汇编命令用适当的段将各部分程序代码和数据连在一起,构成目标文件。链接器的任务:就是分配存储单元,将目标文件中的段重新定位到目标系统的存储器中,这一过程称为定位或分配。3.段与目标存储器的对应关系4.4.2汇编器对段的处理1.未初始化段未初始化段就是在’C54x存储器中保留空间,通常它们被定位在RAM区。在目标文件中,这些段中没有确切的内容。未初始化段分为默认的和命名的两种,分别由汇编器伪指令.bss和.usect产生。(1).bss伪指令用于在bss段中保留若干个空间。格式:.bss符号,字数符号——对应于保留的存储空间第一个字的变量名称。可以让其他段引用,也可以用.global命令定义为全局符号。字数——表示在bss段或标有名字的段中保留若干个存储单元。(2).usect伪指令用于为指定的命名段保留若干个空间。格式:符号.usect“段名”,字数段名——程序员为未初始化的命名段定义的名字。2.已初始化段已初始化段中包含有可执行代码或初始化数据。这些段中的内容都在目标文件中,当加载程序时再放到’C54x的存储器中。链接器在链接时会自动地处理段间的相互引用。已初始化段由.text、.data和.sect三个伪指令建立。2.已初始化段已初始化命令的句法:.text[段起点].data[段起点].sect“段名”[,段起点]段起点——是任选项。若选用,它为段程序计数器SPC定义一个起始值。若默认,则SPC从0开始。4.4.2汇编器对段的处理3.命名段(自定义段)命名段由用户指定,与默认的.text,.data和.bss段的使用相同,但它们被分开汇编。可用.usect和.sect两个伪指令产生命名段.usect伪指令产生类似.bss的段,为变量在RAM中保留存储空间。.sect伪指令产生类似.text和.data的段,可以包含代码或数据。.sect伪指令产生可重新定位地址的命名段。产生命名段伪指令格式:符号.usect“段名”,字数.sect“段名”4.段程序计数器SPC汇编器为每个段都安排了一个单独的程序计数器称之为段程序计数器SPC。SPC表示在程序代码或数据段内当前的地址。开始时汇编器将每个SPC置0。当汇编器将程序代码或数据加到段内时,增加相应的SPC值。若再继续对某个段汇编,则相应的SPC就在先前的数值上继续增加。汇编语言源程序经过汇编后,共建立了5个段:.text段——文本段,段内有10个字可执行的程序代码。.data段——已初始化的数据段,段内有7个字的数据。.vectors段——用.sect命令生成的命名段,段内有2个字的初始化数据。.bss段——未初始化的数据段,在存储器中为变量保留8个存储单元。.newvars段——用.usect命令建立的