51单片机的指令系统
Posted 学工科的皮皮志^_^
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机的指令系统相关的知识,希望对你有一定的参考价值。
一、指令格式
其中操作码有
二、 MCS-51指令寻址方式
操作数类型
位 (b)─ 位寻址区和可位寻址寄存器中的一位二进制数据
字节(B)─ 8位二进制数据
字 (W)─ 16位双字节数据
三、立即寻址
注意:数值前加#符号表示该数是立即数
四、直接寻址
2、直接寻址
操作数的地址直接出现在指令中。
寻址对象:
①内部数据存贮器
②特殊功能寄存器:既可使用它的地址,也可以直接使用寄存器名。
例:
执行指令 MOV 40H, #100 后 (40H )= 64H
注意:直接寻址指令中的 40H是操作数存放在存储器中的地址而不是操作数的值
五、寄存器寻址
操作数存放在通用 寄存器中。
寻址对象:A、B、DPTR、R0~R7 。
A=40H,R0=40H
MUL AB ;A*B→BA,A、B为寄存器寻址
MOV B,R0 ;R0→B,R0为寄存器寻址,B为直接寻址
PUSH ACC ;ACC直接寻址
六、寄存器间接寻址
● 指令的操作数为寄存器名,寄存器中存放的是操作数的地址
MOV @R0,A ;A→(R0) 地址的内部RAM
MOVX A,@R1 ;外部RAM,地址为R1的内容→A
MOVX @DPTR,A ;A→以DPTR内容为地址的
外部RAM
寄存器间接寻址的范围:
(1)内部RAM低128字节,通用形式:MOV
指令及 @Ri(i=1或0);
(2)外部RAM的64K空间,使用间址寄存器:DPTR; 通用形式:MOVX指令,例:MOVX A, @DPTR;
(也就是说访问外部的数据存储器是必须要用DPTR,后面实验会讲到)
(3)外部RAM的低256字节,除用上面的DPTR,还可用间址寄存器R0和R1去寻找片外RAM的低256字节;通用形式:MOVX指令及@Ri(i=1或0);
(4)堆栈操作指令(PUSH和POP),以堆栈指针(SP)作间址寄存器的间接寻址方式。
七、变址寻址
● 变址寻址方式是单片机中用于访问程序存储器的寻址方式。
注意:是程序存储器
● 数据在程序存储器中,指令给出的寄存器中的数据为基地址和偏移地址。(数据地址 = 基地址 + 偏移地址)
● 可充当变址寄存器的寄存器有 A ,
可充当基址寄存器的寄存器有 PC、DPTR。
A=12H,DPTR=2000H
八、相对寻址
单片机中的相对寻址方式是用于改变当前PC的值,
新PC = 当前PC + 相对偏移量
● 主要用于实现程序的相对跳转。
例:1000H: SJMP 02H;( 该指令为双字节指令 )
设指令执行前 PC=1000H,执行指令后:
PC = 1004H
注意:02H 为相对偏移量,该数据为8位补码,数值范围为-128~+127
九、位寻址方式
位寻址方式是使用位地址访问位寻址区;
大家还记得这张图不?
位地址和字节地址是通过指令来区分的:
MOV A,20H ; 字节寻址(因为A是寄存器名,是一个字节底子)
MOV C,20H ; 位寻址(因为C是特殊功能寄存器的某一个位)
可供位寻址的区域
片内RAM的 20H~2FH为位寻址空间
某些SFR:其字节地址都能被8整除,共11个。
总结
(1)51系列单片机指令系统的特点是不同的存储空间寻址方式不同,适用的指令不同,必须进行区分,因此 七种寻址方式要熟记于心,并可以正确应用。
下一章我们更进一步巩固七种寻址方式
以上是关于51单片机的指令系统的主要内容,如果未能解决你的问题,请参考以下文章