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