单片机原理
及接口技术;第三章 指令系统; MCS-51单片机汇编语言指令格式:
[标号:] 操作码 [操作数] [; 注释]
例如:START: MOV A, #00H; (A) ← 00H ; 标号是用户定义的符号,标号实际上为符号地址,标号的值代表这条指令在存储器ROM中存放的位置。
标号以字母开头,后面可跟着字母或数字,以冒号“:”结尾。
标号是可有可无的,视编程者的需要而定。
在编程过程中,需要指出标号的地方,最好用一些有意义、好识别又不和通用指令重复的标号,以增强程序的可读性。; Rn: 表示当前工作寄存器R0~R7中的一个。
@Ri: 表示寄存器间接寻址,常常作间接寻址的地址指针。其中Ri代表R0和R1寄存器中的一个。
Direct: 表示内部数据存贮器单元的地址及特殊功能寄存器SFR的地址,对SFR而言,既可使用它的物理地址,也可直接使用它的名字。
#data: 表示8位立即数,即8位常数,取值范围为#00H~#0FFH; #date16: 表示16位立即数,即16位常数,取值范围为#0000H~#0FFFFH
rel: 用补码形式表示的地址偏移量,取值范围为-128~+127。
bit: 表示内部RAM和SFR中的具有位寻址功能的位地址。SFR中的位地址可以直接出现在指令中,为了阅读方便,往往也可用SFR的名字和所在的数位表示。如:表示PSW中奇偶校验位,可写成D0H,也可写成PSW.0的形式出现在指令中。
@: 表示间接寻址寄存器或基址寄存器的前缀符号。
$: 表示当前指令的地址。;三、 寻址方式; 1、寄存器寻址
操作数存放在所选定的寄存器中。包括:
(1)内部RAM中的32个工作寄存器R0~R7;
(2)A、B、C、DPTR;; 例如: MOV A, R7
若(R7)=68H,则指令执行后(A)=68H。
寻址过程如下图所示。; 再如:
INC R3 ;(R3)←(R3)+1
该指令表示将寄存器R3中的内容加1后又存放在R3中。; 2、寄存器间接寻址
指令中指出某一个寄存器的内容为操作数的地址,以符号“@”表示。寄存器中出现的数并不是参加操作的数据本身,而是操作数在存储器中的存放地址。
; 2、寄存器间接寻址
指令中指出某一个寄存器的内容为操作数的地址,以符号“@”表示。寄存器中出现的数并不是参加操作的数据本身,而是操作数在存储器中的存放地址。
例如:MOV A,@R0 ;(A)←((R0))
若(R0)=30H,(30H)=40H,则执行该指令后(A)=40H。如下图所示。
; 寄存器间接寻址寻址方式可访问内部RAM的128字节,或外部RAM的低256字节。
MOV A, @Ri ;内部RAM
MOVX A, @Ri ;外部RAM
; 寄存器间接寻址寻址方式可访问内部RAM的128字节,或外部RAM的低256字节。
MOV A, @Ri ;内部RAM
MOVX A, @Ri ;外部RAM
; 寄存器间接寻址寻址方式可访问内部RAM的128字节,或外部RAM的低256字节。
MOV A, @Ri ;内部RAM
MOVX A, @Ri ;外部RAM
;3、立即寻址
指令直接给出操作数.
例如: MOV A, #88H
MOV DPTR, #1234H;
MOV DPTR, #TABLE ;TABLE为标号地址
MOV P1,
MOV R3,
原创力文档

文档评论(0)