首页 理论教育 常用汇编语言命令详解

常用汇编语言命令详解

时间:2023-06-29 理论教育 版权反馈
【摘要】:该命令的格式为:符号.usect“段名”,字数2.常数初始化命令1).word:将一个或多个16位的值,放入当前段中的连续字中。例如:include“F2407REGS_A.h”,表示将寄存器定义头文件F2407REGS_A.h包含到汇编语言源程序中。可使用.def、.ref或.global汇编伪指令将符号定义为外部符号。例如:3).if/.elseif/.else/.endif:条件汇编命令。5).end:汇编语言程序结束。

常用汇编语言命令详解

1.段定义命令

汇编与链接程序建立的目标文件采用共用目标文件格式(COFF),便于模块化编程、管理代码段和存储,即不必为程序代码或变量指定目标地址,这为程序编写、移植和升级提供了很大方便。汇编器根据汇编命令(也称为伪指令)用适当的段将各部分程序代码和数据连在一起,构成目标文件。链接器分配存储单元,即把各个段重新定位到目标存储器中。段(Section)是目标文件的最小单位,是在存储器中占据连续空间的代码和数据块,各段相互独立

有如下段定义命令:

1).text命令。定义text段,即程序段,该段通常包含可执行代码即程序。该段是系统的默认段。

2).data命令。定义data段,即数据段,该段通常包含已初始化的常数数据。该段是系统的默认段。

3).bss命令。定义bss段,即保留数据空间段,该段通常为未初始化的数据保留空间。该段是系统的默认段。该命令的格式为:.bss符号,字数

4).sect命令。用户可以自行定义已初始化段。该命令的格式为:.sect“段名”

5).use ct命令。用户可以自行定义未初始化段,为变量保留空间。该命令的格式为:符号.usect“段名”,字数

2.常数初始化命令

1).word:将一个或多个16位的值,放入当前段中的连续字中。

2).byte:将一个或多个8位的值,放入当前段中的连续字中。

3).bes,.sp ace:在当前段内保留特定的二进制位数。

4).float:计算单精度32位IEEE浮点数值,并将其存入当前段中的两个连续的字中。(www.xing528.com)

5).int:将一个或多个16位的数,放入当前段中的连续字中。

6).long:将32位的数,放入当前段的连续字中。

7).string:将一个或多个8位的字符放入当前段。

【例3-3】汇编命令.word、.byte、.flo at、.int、.lo ng、.string的使用。

3.其他汇编命令

1).include:告诉汇编器从其他文件读入源语句。例如:include“F2407REGS_A.h”,表示将寄存器定义头文件F2407REGS_A.h包含到汇编语言源程序中。

2).global、.def、.ref:定义全局符号,在连接时可供其他模块使用。外部符号是指在一个模块中定义,在另一个模块中使用的符号。可使用.def、.ref或.global汇编伪指令将符号定义为外部符号。.def用于在当前模块中定义,可以在别的模块中使用的符号。.ref用于在当前模块中引用,但在别的模块中定义的符号。.global可用于以上任何一种情况。例如:

3).if/.elseif/.else/.endif:条件汇编命令。

4).set和.equ:为一个符号设置一个常数值,二者是等价的。该符号存在符号表中,不能再定义。

例如:

通常将片内外设寄存器地址的定义等做成一个头文件例如:F2407REGS_A.h,然后用.include命令将该文件包含到汇编语言程序中。

5).end:汇编语言程序结束。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈