- 單片機(jī)原理
- 張志霞 張楠楠 王永剛 楊萍主編
- 1403字
- 2021-10-22 23:53:55
第二節(jié) 尋址方式
指令的一個重要組成部分是操作數(shù),指令給出參與運(yùn)算的數(shù)據(jù)的方式稱為尋址方式。一、寄存器尋址
由指令指出某一個寄存器的內(nèi)容作為操作數(shù),這種尋址方式稱為寄存器尋址。
尋址空間:R0~R7
A、B、C、AB、DPTR
例如指令:
INC R0
;(R0)+1→R0
其功能為對R0進(jìn)行操作,使其內(nèi)容加1。二、直接尋址
在指令中含有操作數(shù)的直接地址,該地址指出了參與運(yùn)算或傳送的數(shù)據(jù)所在的字節(jié)單元或位的地址。
直接尋址方式訪問以下三種存儲空間:
(1)特殊功能寄存器(特殊功能寄存器只能用直接尋址方式訪問)。(2)內(nèi)部數(shù)據(jù)存儲器的低128字節(jié)。
(3)位地址空間。例如指令:
ANL 70H,#48H
;(70H)∧48H→70H
其功能是把內(nèi)部RAM中70H單元的內(nèi)容和常數(shù)48H邏輯與后,結(jié)果寫入70H單元。
三、寄存器間接尋址
由指令指出某一個寄存器的內(nèi)容作為操作數(shù)的地址,這種尋址方式稱為寄存器間接尋址(特別應(yīng)注意寄存器的內(nèi)容不是操作數(shù),而是操作數(shù)所在的存儲器地址)。
寄存器間接尋址使用所選定的寄存器區(qū)中R0或R1作地址指針(對堆棧操作指令用棧指針SP)來尋址內(nèi)部RAM(00~0FFH)。寄存器間接尋址也適用于訪問外部擴(kuò)展的數(shù)據(jù)存儲器,用R0、R1或DPTR作為地址指針。寄存器間接尋址用符號@表示。
尋址空間:內(nèi)部RAM(@R0、@R1、SP)
外部數(shù)據(jù)存儲器(@R0、@R1、@DPTR)
例如指令:
ANL A,@R0
;(A)∧((R0))→A
其功能為R0所指出的內(nèi)部RAM單元內(nèi)容和累加器A的內(nèi)容進(jìn)行邏輯與,結(jié)果送累
加器A。
四、立即尋址
立即尋址方式中操作數(shù)包含在指令字節(jié)中,即操作數(shù)以指令字節(jié)的形式存放于程序存儲器中。
例如指令:
MOV A,#70H
其功能為把常數(shù)70H傳送到累加器A。五、基寄存器加變址寄存器間接尋址
這種尋址方式以16位的程序計數(shù)器PC或數(shù)據(jù)指針DPTR作為基寄存器,以8位的累加器A作為變址寄存器。基寄存器和變址寄存器的內(nèi)容相加形成16位的地址,該地址即為操作數(shù)的地址。
尋址空間:程序存儲器(@A+PC、@A+DPTR)
例如指令:
MOVC A,@A+PC
;((A)+(PC))→A
MOVC A,@A+DPTR
;((A)+(DPTR))→A
六、相對尋址
相對尋址方式是為實現(xiàn)程序的相對轉(zhuǎn)移而設(shè)計的,為相對轉(zhuǎn)移指令所采用。
在相對尋址的轉(zhuǎn)移指令中,給出了地址偏移量(在MCS-51指令中以rel表示),把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移目的地址。但這里的PC當(dāng)前值是指執(zhí)行完該轉(zhuǎn)移指令后的PC值,即轉(zhuǎn)移指令的PC值加上它的字節(jié)數(shù)。因此轉(zhuǎn)移的目的地址可用如下公式表示:
目的地址:轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel
在MCS-51指令系統(tǒng)中,有多條相對轉(zhuǎn)移指令,這些指令多數(shù)為二字節(jié)指令,但也有個別為三字節(jié)的。偏移量rel是一個帶符號的8位二進(jìn)制補(bǔ)碼數(shù)。所能表示的數(shù)的范圍是-128~+127,因此相對轉(zhuǎn)移是以相對轉(zhuǎn)移指令所在地址為基點(diǎn),向前最大可轉(zhuǎn)移(127+轉(zhuǎn)移指令字節(jié)數(shù))個單元地址,向后最大可轉(zhuǎn)移(128-轉(zhuǎn)移指令字節(jié)數(shù))個單元地址。
MCS51有五個存儲器空間,且多數(shù)從零地址開始編址:程序存儲器空間
0000H~0FFFFH
內(nèi)部RAM空間
00H~0FFH
特殊功能寄存器空間
80H~0FFH
位地址空間
00H~0FFH
外部RAM/IO空間
0000H~0FFFFH
指令對哪一個存儲器空間進(jìn)行操作是由指令的操作碼和尋址方式確定的。對程序存儲器只能采用立即尋址和基寄存器加變址寄存器間接尋址方式,特殊功能寄存器只能采用直接尋址方式,不能采用寄存器間接尋址,8052/8032等單片機(jī)內(nèi)部RAM的高128字節(jié)(80H~0FFH)只能采用寄存器間接尋址,不能使用直接尋址方式,位操作指令只能對位尋址區(qū)操作。外部擴(kuò)展的數(shù)據(jù)存儲器只能用 MOVX指令訪問,而內(nèi)部RAM的低128字節(jié)(00~7FH)既能用直接尋址,也能用寄存器間接尋址,操作指令最豐富。
- 歐姆龍CP1L/1H系列PLC完全精通教程
- 風(fēng)力發(fā)電機(jī)組電氣裝調(diào)工:初級
- 功率半導(dǎo)體器件封裝技術(shù)
- 圖解電冰箱維修完全精通:雙色版
- 電氣工程師自學(xué)成才手冊(基礎(chǔ)篇)
- 安防視頻監(jiān)控實用技術(shù)
- AutoCAD 2016中文版電氣設(shè)計自學(xué)視頻教程(CAD/CAM/CAE自學(xué)視頻教程)
- 雙色圖解變頻器及軟起動器控制線路
- 風(fēng)力發(fā)電機(jī)組維修保養(yǎng)工:中級
- 常見重型載貨、載客汽車電氣線路及柴油機(jī)電控系統(tǒng)電路圖集(第3版)
- 西門子S7-200 SMART PLC編程技巧與案例
- AutoCAD 2010中文版電氣制圖實戰(zhàn)100例
- AVR單片機(jī)應(yīng)用技術(shù)項目化教程
- 風(fēng)電場建設(shè)基礎(chǔ)
- 現(xiàn)代低壓電器技術(shù)