什么是單片機尋址方式?尋址方式有哪些?
尋找操作數地址的方式稱為尋址方式。
1. 寄存器尋址
寄存器尋址是指將操作數存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如,指令MOV R1,A的操作是把累加器A中的數據傳送到寄存器R1中,其操作數存放在累加器A中,所以尋址方式為寄存器尋址。
如果程序狀態寄存器PSW的RS1RS0=01(選中第二組工作寄存器,對應地址為08H~0FH),設累加器A的內容為20H,則執行MOV R1,A指令后,內部RAM 09H單元的值就變為20H。
2. 直接尋址
直接尋址是指把存放操作數的內存單元的地址直接寫在指令中。在MCS-51單片機中,可以直接尋址的存儲器主要有內部RAM區和特殊功能寄存器SFR區。
例如,指令MOV A,3AH執行的操作是將內部RAM 中地址為3AH的單元內容傳送到累加器A中,其操作數3AH就是存放數據的單元地址,因此該指令是直接尋址。
3. 立即數尋址
立即數尋址是指將操作數直接寫在指令中。
例如,指令MOV A,#3AH執行的操作是將立即數3AH送到累加器A中,該指令就是立即數尋址。
4. 寄存器間接尋址
寄存器間接尋址是指將存放操作數的內存單元的地址放在寄存器中,指令中只給出該寄存器。執行指令時,首先根據寄存器的內容,找到所需要的操作數地址,再由該地址找到操作數并完成相應操作。
在MCS-51指令系統中,用于寄存器間接尋址的寄存器有R0、R1和DPTR,稱為寄存器間接尋址寄存器。
設R0=3AH,內部RAM 3AH中的值是65H,則指令MOV A,@R0的執行結果是累加器A的值為65H。
評論