51单片机的指令系统(一)
文章目錄
- 一、指令格式
- 二、 MCS-51指令尋址方式
- 三、立即尋址
- 四、直接尋址
- 五、寄存器尋址
- 六、寄存器間接尋址
- 七、變址尋址
- 八、相對(duì)尋址
- 九、位尋址方式
- 總結(jié)
一、指令格式
其中操作碼有
二、 MCS-51指令尋址方式
操作數(shù)類型
位 (b)─ 位尋址區(qū)和可位尋址寄存器中的一位二進(jìn)制數(shù)據(jù)
字節(jié)(B)─ 8位二進(jìn)制數(shù)據(jù)
字 (W)─ 16位雙字節(jié)數(shù)據(jù)
三、立即尋址
注意:數(shù)值前加#符號(hào)表示該數(shù)是立即數(shù)
四、直接尋址
2、直接尋址
操作數(shù)的地址直接出現(xiàn)在指令中。
尋址對(duì)象:
①內(nèi)部數(shù)據(jù)存貯器
②特殊功能寄存器:既可使用它的地址,也可以直接使用寄存器名。
例:
執(zhí)行指令 MOV 40H, #100 后 (40H )= 64H
注意:直接尋址指令中的 40H是操作數(shù)存放在存儲(chǔ)器中的地址而不是操作數(shù)的值
五、寄存器尋址
操作數(shù)存放在通用 寄存器中。
尋址對(duì)象: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直接尋址
六、寄存器間接尋址
● 指令的操作數(shù)為寄存器名,寄存器中存放的是操作數(shù)的地址
MOV @R0,A ;A→(R0) 地址的內(nèi)部RAM
MOVX A,@R1 ;外部RAM,地址為R1的內(nèi)容→A
MOVX @DPTR,A ;A→以DPTR內(nèi)容為地址的
外部RAM
寄存器間接尋址的范圍:
(1)內(nèi)部RAM低128字節(jié),通用形式:MOV
指令及 @Ri(i=1或0);
(2)外部RAM的64K空間,使用間址寄存器:DPTR; 通用形式:MOVX指令,例:MOVX A, @DPTR;
(也就是說(shuō)訪問(wèn)外部的數(shù)據(jù)存儲(chǔ)器是必須要用DPTR,后面實(shí)驗(yàn)會(huì)講到)
(3)外部RAM的低256字節(jié),除用上面的DPTR,還可用間址寄存器R0和R1去尋找片外RAM的低256字節(jié);通用形式:MOVX指令及@Ri(i=1或0);
(4)堆棧操作指令(PUSH和POP),以堆棧指針(SP)作間址寄存器的間接尋址方式。
七、變址尋址
● 變址尋址方式是單片機(jī)中用于訪問(wèn)程序存儲(chǔ)器的尋址方式。
注意:是程序存儲(chǔ)器
● 數(shù)據(jù)在程序存儲(chǔ)器中,指令給出的寄存器中的數(shù)據(jù)為基地址和偏移地址。(數(shù)據(jù)地址 = 基地址 + 偏移地址)
● 可充當(dāng)變址寄存器的寄存器有 A ,
可充當(dāng)基址寄存器的寄存器有 PC、DPTR。
A=12H,DPTR=2000H
八、相對(duì)尋址
單片機(jī)中的相對(duì)尋址方式是用于改變當(dāng)前PC的值,
新PC = 當(dāng)前PC + 相對(duì)偏移量
● 主要用于實(shí)現(xiàn)程序的相對(duì)跳轉(zhuǎn)。
例:1000H: SJMP 02H;( 該指令為雙字節(jié)指令 )
設(shè)指令執(zhí)行前 PC=1000H,執(zhí)行指令后:
PC = 1004H
注意:02H 為相對(duì)偏移量,該數(shù)據(jù)為8位補(bǔ)碼,數(shù)值范圍為-128~+127
九、位尋址方式
位尋址方式是使用位地址訪問(wèn)位尋址區(qū);
大家還記得這張圖不?
位地址和字節(jié)地址是通過(guò)指令來(lái)區(qū)分的:
MOV A,20H ; 字節(jié)尋址(因?yàn)锳是寄存器名,是一個(gè)字節(jié)底子)
MOV C,20H ; 位尋址(因?yàn)镃是特殊功能寄存器的某一個(gè)位)
可供位尋址的區(qū)域
片內(nèi)RAM的 20H~2FH為位尋址空間
某些SFR:其字節(jié)地址都能被8整除,共11個(gè)。
總結(jié)
(1)51系列單片機(jī)指令系統(tǒng)的特點(diǎn)是不同的存儲(chǔ)空間尋址方式不同,適用的指令不同,必須進(jìn)行區(qū)分,因此 七種尋址方式要熟記于心,并可以正確應(yīng)用。
下一章我們更進(jìn)一步鞏固七種尋址方式
總結(jié)
以上是生活随笔為你收集整理的51单片机的指令系统(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Flutter:从入门到实践
- 下一篇: java信息管理系统总结_java实现科