单片机系统指令的指令系统的寻址方式

如题所述

第1个回答  2016-06-03

访问指令
一、操作数在寄存器中;
如MOV A,Rn ;(Rn)→A,n=0~7
1、4组工作寄存区,共32个工作寄存器。
2、部分特殊功能寄存器,例如A、B 及DPTR等。
二、访问片外数据存储器
(1)用R0或R1作为间址寄存器,寻址范围为片外低256个字节;
(2)用DPTR作为间址寄存器,寻址范围为片外64K。
a) MOVX A,@Ri ;i=0或1
若(Ri)=70H,把外部RAM中70H单元的内容送到A
b) MOVX A,@DPTR
若(DPTR)=2000H,把外部RAM中2000H单元的内容送到A
3、堆栈操作指令访问堆栈区
堆栈专用操作指令PUSH(压栈)和POP(出栈)使用堆栈
指针(SP)作间址寄存器
指令PUSH(压栈)和POP(出栈),无前缀标志“@”
四、立即(数)寻址方式
操作数在指令中直接给出,需在操作数前面加前缀标志“#”。
如MOV A,#40H,此时立即数在程序存储单元中。
五、基址寄存器加变址寄存器间址寻址方式
1、以DPTR或PC作基址寄存器,以累加器A作为变址寄存器;
2、基址寄存器+变址寄存器形成操作数地址;
3、本寻址方式专门针对程序存储器,寻址范围可达到64KB。
4、本寻址方式的指令只有3条:
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
前2条又称查表指令,将程序存储器单元内容给ACC;
后1条为散转指令,属于转移类指令。
(注)
(1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。
(2)本寻址方式的指令只有3条:
MOVC A,@A+DPTR
MOVC A,@A+PC
JMP @A+DPTR
六、位寻址方式
89C51有位处理功能,可以对数据位进行操作,
如MOV C,40H是把位40H的值送到进位位C。
寻址范围:
1、内部RAM中的位寻址区(20H—2FH),有2种表示方法。
(1) 直接给出位地址,如MOV C,40H;
(2) 单元地址加位数,如MOV C,(28H).0,指的是28H单元中的最低位。
2、SFR中的可寻址位(70H—FFH,共83位),有4种表示方法。
(1) 直接给出位地址,如MOV C,0D5H(PSW.5的位地址);
(2) 直接写位名称,如MOV C,F0;
(3) 单元地址加位数,如MOV C, (0D0H).5;
(4) SFR符号加位数,如MOV C, PSW.5。
七、相对寻址方式
在相对寻址的转移指令中,给出了地址偏移量“rel”,即
把PC的当前值+ rel 就构成了程序转移的目的地址。即
目的地址=转移指令所在的地址+ 转移指令的字节数+ rel
偏移量rel是带符号的8位二进制补码数,范围是:–128 ~ +127 ;
注意:PC的当前值是紧接在转移指令后的下一条指令的PC值。

相似回答