《单片机指令说明(汇编)》由会员分享,可在线阅读,更多相关《单片机指令说明(汇编)(5页珍藏版)》请在金锄头文库上搜索。
1、汇编伪指令注释: 1、DS 预留存储区命令 格式: 标号: DS 表达式值 其功能是从指定地址开始,定义一个存储区,以备源程序使用。 存储区预留的存储单元数由表达式的值决定。 TMP: DS 1 从标号 TEP 地址处开始保留 1 个存储单元(字节) 。 2、BIT定义位命令 格式: 字符名称 BIT 位地址 其功能用于给字符名称定义位地址。 SPK BIT P3.7 经定义后,允许在指令中用 SPK 代替 P3.7。 3、USING 指令 USING 指令通知汇编器使用 8051 的哪一个工作寄存器组。 格式: USING 表达式 (值必须为 03,默认值为 0。 ) USING 0 使用第
2、 0 组工作寄存器。 4、SEGMENT 指令 SEGMENT 指令用来声明一个再定位段和一个可选的再定位类型。 格式: 再定位段名 SEGMENT 段类型再定位类型 其中, “再定位段名”用于指明所声明的段。 “段类型”用于指定所声明的段将处的存储器地址空间。 可用的段类型有 CODE、XDATA、DATA、IDATA 和 BIT。 STACK_SEG SEGMENT IDATA DATA_SEG SEGMENT DATA 5、RSEG再定位段选择指令 再定位段选择指令为 RSEG,用于选择一个已在前面定义过的再定位段作为当前段。 格式: RSEG 段名 段名必须是在前面已经声明过的再定位段
3、。 DATA_SEG SEGMENT DATA ;声明一个再定位 DATA 段 RSEG DATA_SEG ;选择前面声明的再定位 DATA 段作为当前段 6、绝对段选择指令 CSEG绝对代码段 DSEG内部绝对数据段 XSEG外部绝对数据段 ISEG 内部间接寻址数据段 BSEG绝对位寻址数据段 格式: 1CSEG AT 绝对地址表达式 DSEG AT 绝对地址表达式 XSEG AT 绝对地址表达式 ISEG AT 绝对地址表达式 BSEG AT 绝对地址表达式 括号内是可选项,用来指定当前绝对段的基地址。 CSEG AT 0000H AJMP MAIN 7、ORG 指令 ORG 指令用来改
4、变汇编器的计数器,从而设定一个新的程序起始地址。 格式: ORG 表达式 表达式必须是绝对或简单再定位表达式。 ORG 0000H AJMP MAIN 设定 MAIN 程序的起始地址为 0000H。 8、END 指令 END 指令用来控制汇编结束。在每个汇编程序的最后一行必须有一条 END 指令, 并且 END 指令只能出现一次。 9、EQU 指令 EQU 指令用于将一个数值或寄存器名赋给一个指定的符号名。 格式: 符号名 EQU 表达式 或 符号名 EQU 寄存器名 表达式必须是一个简单再定位表达式。 用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者 直接当做一个立即
5、数使用。 LIMIT EQU 1200 COUNT EQU R5 10、DATA 指令 DATA 指令用于将一个内部 RAM 的地址赋给指定的符号名。 格式: 符号名 DATA 表达式 数值表达式的值在 0255 之间,表达式必须是一个简单再定位表达式。 PORT1 DATA 40H 11、DB 指令 DB 指令以表达式的值的字节形式初始化代码空间。 格式: 标号: DB 表达式表 表达式中可包含符号、字符串、或表达式等项,各个项之间用逗号隔开,字符串应用引号括 起来。 括号内的标号是可选项,如果使用了标号,则标号的值将是表达式表中第一字节的地址。 DB 指令必须位于 CODE 段之内,否则将
6、会发生错误。 2TABLE: DB 0C0H, 0F9H, 0A4H TABLE1: DB “ WEINA “ 单片机指令大全- - 指令格式 功能简述 字节数 周期 一、数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri 内部 RAM 单元送累加器 1 1 MOV Ri ,A 累加器送内部 RAM 单元 1 1 MOV A ,#data 立即数送累加器 2 1 MOV A ,direct 直接寻址单元送累加器 2 1 MOV direct ,A 累加器送直接寻址单元 2 1 MOV Rn,#data 立即数送寄存器 2 1
7、 MOV direct ,#data 立即数送直接寻址单元 3 2 MOV Ri ,#data 立即数送内部 RAM 单元 2 1 MOV direct ,Rn 寄存器送直接寻址单元 2 2 MOV Rn ,direct 直接寻址单元送寄存器 2 2 MOV direct ,Ri 内部 RAM 单元送直接寻址单元 2 2 MOV Ri ,direct 直接寻址单元送内部 RAM 单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16 位立即数送数据指针 3 2 MOVX A ,Ri 外部 RAM 单元送累加器(8 位地
8、址) 1 2 MOVX Ri ,A 累加器送外部 RAM 单元(8 位地址) 1 2 MOVX A ,DPTR 外部 RAM 单元送累加器(16 位地址) 1 2 MOVX DPTR ,A 累加器送外部 RAM 单元(16 位地址) 1 2 MOVC A ,A+DPTR 查表数据送累加器(DPTR 为基址) 1 2 MOVC A ,A+PC 查表数据送累加器(PC 为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1 XCH A ,Ri 累加器与内部 RAM 单元交换 1 1 XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,Ri 累加器与内部 RAM
9、 单元低 4 位交换 1 1 SWAP A 累加器高 4 位与低 4 位交换 1 1 POP direct 栈顶弹出指令直接寻址单元 2 2 PUSH direct 直接寻址单元压入栈顶 2 2 二、算术运算类指令 ADD A, Rn 累加器加寄存器 1 1 ADD A, Ri 累加器加内部 RAM 单元 1 1 ADD A, direct 累加器加直接寻址单元 2 1 3ADD A, #data 累加器加立即数 2 1 ADDC A, Rn 累加器加寄存器和进位标志 1 1 ADDC A, Ri 累加器加内部 RAM 单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标
10、志 2 1 ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加 1 1 1 INC Rn 寄存器加 1 1 1 INC direct 直接寻址单元加 1 2 1 INC Ri 内部 RAM 单元加 1 1 1 INC DPTR 数据指针加 1 1 2 DA A 十进制调整 1 1 SUBB A, Rn 累加器减寄存器和进位标志 1 1 SUBB A, Ri 累加器减内部 RAM 单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1 SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减 1 1 1 DEC Rn 寄存器减 1 1 1 DEC Ri 内部 RAM 单元减 1 1 1 DEC direct