MCS-51單片機(jī)指令系統(tǒng)的尋址方式
1、寄存器尋址
寄存器尋址方式可用于訪問(wèn)選定寄存器區(qū)的8個(gè)工作寄存器R0~R7。由指令操作碼的低3位指示所用的寄存器,寄存器A、B、DPTR和C位(位處理機(jī)的累加器)也可作為尋址的對(duì)象。
2、直接尋址
直接尋址是訪問(wèn)特殊功能寄存器的唯一方法。它也用于訪問(wèn)內(nèi)部RAM(低128個(gè)字節(jié))。采用直接尋址方式的指令是雙字節(jié)指令,其中第一個(gè)字節(jié)是操作碼,第二個(gè)字節(jié)是內(nèi)部RAM或特殊功能寄存器的直接地址。
3、寄存器間接尋址
寄存器間接尋址方式可用于訪問(wèn)內(nèi)部RAM或外部數(shù)據(jù)存儲(chǔ)器。這種尋址方式是由指令指定某一寄存器的內(nèi)容作為操作數(shù)的地址。
訪問(wèn)內(nèi)部RAM或外部數(shù)據(jù)存儲(chǔ)器的低256個(gè)字節(jié)時(shí),可采用R0或R1作為間址寄存器。
4、立即尋址
采用立即尋址方式的指令是雙字節(jié)的。第一個(gè)字節(jié)是操作碼,第二字節(jié)就是操作數(shù)。因此,操作數(shù)就是存放在程序存儲(chǔ)器內(nèi)的常數(shù)。
5、基址寄存器加變址寄存器間址尋址
這種尋址方式用于訪問(wèn)程序存儲(chǔ)器的一個(gè)單元,該單元的地址是基址寄存器(DPTR或PC)的內(nèi)容與變址寄存器A的內(nèi)容之和。例如指令“MOVC A,@A+DPTR”,其中A的原有內(nèi)容為05H,DPTR的內(nèi)容為4000H,該指令執(zhí)行的結(jié)果是把程序存儲(chǔ)器4005H單元的內(nèi)容傳送給累加器A。
6、相對(duì)尋址
相對(duì)尋址用于訪問(wèn)程序存儲(chǔ)器,它只出現(xiàn)在相對(duì)轉(zhuǎn)移指令中。相對(duì)尋址是將程序計(jì)數(shù)器PC中的當(dāng)前值與指令第二字節(jié)所給出的數(shù)據(jù)(該數(shù)據(jù)也稱(chēng)為偏移量)相加,其和為跳轉(zhuǎn)指令的轉(zhuǎn)移地址。轉(zhuǎn)移地址也稱(chēng)為轉(zhuǎn)移目的地址。偏移量是一有符號(hào)數(shù),其取值范圍為-128~+127。
7、位尋址
位尋址是指對(duì)片內(nèi)RAM的位尋址區(qū)(20H~2FH)和可以位尋址的專(zhuān)用寄存器進(jìn)行位操作時(shí)的尋址方式。這種尋址方式與直接尋址方式的形式和執(zhí)行過(guò)程基本相同。在進(jìn)行位操作時(shí),借助于進(jìn)位C作為操作的位累加器,操作數(shù)直接給出該位的地址,然后根據(jù)操作碼的性質(zhì)對(duì)其進(jìn)行位操作。
編輯:admin 最后修改時(shí)間:2018-05-08