單片機的尋址方式
指令給出參與運算的數據方式稱為尋址方式。換句話說,尋址方式就是尋找確定參與操作的數的真正地址。
立即尋址方式,mcs-51單片機的一種尋址方式,操作數就寫在指令中,和操作碼一起放在程序存貯器中。把“#”號放在立即數前面,以表示該尋址方式為立即尋址,如#20H,立即尋址方式通常用于對通用寄存器或內存單元賦初值。
直接尋址方式,指令操作數域給出的是參加運算的操作數地址。在MCS-51單片機中,直接地址只能用來表示特殊功能寄存器、內部數據寄存器和位地址空間。其中,特殊功能寄存器和位地址空間只能用直接尋址方式訪問。
寄存器尋址方式,操作數在寄存器中,由指令操作碼中的rrr三位的值和PSW中RS1及RS0的狀態,選中某個工作寄存器區的某個寄存器,然后進行相應的指令操作。 指令所要的操作數已存儲在某寄存器中,或把目標操作數存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助憶符)的尋址方式稱為寄存器尋址方式。
間接尋址方式,指令操作數給出的是存放操作數地址的寄存器。在MCS-51指令系統中,可作為寄存器間接尋址的寄存器有工作寄存器R0~R1、堆棧批示器SP和地址寄存器DPTR。在指令助記符中,間接尋址用符號 @來表示。
相對尋址方式,以當前程序計數器pc的內容為基址,加上指令給出的一字節補碼數(偏移量)形成新的pc值的尋址方式稱為相對尋址。
變址尋址方式 ,在通用寄存器中,有些寄存器可作為變址寄存器。把變址寄存器的內容(通常是首地址)與指令地址碼部分給出的地址(通常是位移量)之和作為操作數的地址來獲得所需要的操作數就稱為變址尋址。
位尋址方式,它是指對一些內部數據存儲器RAM和特殊功能寄存器進行位操作時的尋址。在進行位操作時,借助于進位位C作為操作累加器,指令操作數域直接給出該位的地址,然后根據操作碼的性質對該位進行位操作。位地址與字節直接尋址中的字節地址形式完全一樣,主要由操作碼加以區分。
評論