"); //-->
由于网上提问有关汇编伪指令的问题比较多,为了让大家更好地理解汇编伪指令的实际意义,
我将查找资料将汇编伪指令汇总,供大家学习参考。(逐渐完善)
-----------------------------------------
汇编伪指令注释:
-----------------------------------------
1、DS ---预留存储区命令
格式: 〔标号:〕 DS 表达式值
其功能是从指定地址开始,定义一个存储区,以备源程序使用。
存储区预留的存储单元数由表达式的值决定。
TMP: DS 1
从标号TEP地址处开始保留1个存储单元(字节)。
2、BIT---定义位命令
格式: 字符名称 BIT 位地址
其功能用于给字符名称定义位地址。
SPK BIT P3.7
经定义后,允许在指令中用SPK代替P3.7。
3、USING指令
USING指令通知汇编器使用8051的哪一个工作寄存器组。
格式: USING 表达式 (值必须为0-3,默认值为0。)
USING 0
使用第0组工作寄存器。
4、SEGMENT指令
SEGMENT 指令用来声明一个再定位段和一个可选的再定位类型。
格式: 再定位段名 SEGMENT 段类型〔再定位类型〕
其中,“再定位段名”用于指明所声明的段。
“段类型”用于指定所声明的段将处的存储器地址空间。
可用的段类型有 CODE、XDATA、DATA、IDATA和BIT。
STACK_SEG SEGMENT IDATA
DATA_SEG SEGMENT DATA
5、RSEG---再定位段选择指令
再定位段选择指令为RSEG,用于选择一个已在前面定义过的再定位段作为当前段。
格式: RSEG 段名
段名必须是在前面已经声明过的再定位段。
DATA_SEG SEGMENT DATA ;声明一个再定位DATA段
RSEG DATA_SEG ;选择前面声明的再定位DATA段作为当前段
6、绝对段选择指令
CSEG---绝对代码段
DSEG---内部绝对数据段
XSEG---外部绝对数据段
ISEG ---内部间接寻址数据段
BSEG---绝对位寻址数据段
格式:
CSEG [AT 绝对地址表达式]
DSEG [AT 绝对地址表达式]
XSEG [AT 绝对地址表达式]
ISEG [AT 绝对地址表达式]
BSEG [AT 绝对地址表达式]
括号内是可选项,用来指定当前绝对段的基地址。
CSEG AT 0000H
AJMP MAIN
7、ORG指令
ORG指令用来改变汇编器的计数器,从而设定一个新的程序起始地址。
格式: ORG 表达式
表达式必须是绝对或简单再定位表达式。
ORG 0000H
AJMP MAIN
设定 MAIN 程序的起始地址为 0000H。
8、END指令
END指令用来控制汇编结束。在每个汇编程序的最后一行必须有一条END指令,
并且END指令只能出现一次。
9、EQU指令
EQU 指令用于将一个数值或寄存器名赋给一个指定的符号名。
格式: 符号名 EQU 表达式
或 符号名 EQU 寄存器名
表达式必须是一个简单再定位表达式。
用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者
直接当做一个立即数使用。
LIMIT EQU 1200
COUNT EQU R5
10、DATA 指令
DATA 指令用于将一个内部 RAM 的地址赋给指定的符号名。
格式: 符号名 DATA 表达式
数值表达式的值在 0-255 之间,表达式必须是一个简单再定位表达式。
PORT1 DATA 40H
11、DB 指令
DB 指令以表达式的值的字节形式初始化代码空间。
格式: [标号:] DB 表达式表
表达式中可包含符号、字符串、或表达式等项,各个项之间用逗号隔开,字符串应用引号括起来。
括号内的标号是可选项,如果使用了标号,则标号的值将是表达式表中第一字节的地址。
DB 指令必须位于 CODE 段之内,否则将会发生错误。
TABLE:
DB 0C0H, 0F9H, 0A4H
TABLE1:
DB " WEINA "
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。