51单片机的指令系统(一)
文章目錄
- 一、指令格式
- 二、 MCS-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单片机的指令系统(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flutter:从入门到实践
- 下一篇: 记录开始学习AS400(01)