Page 42 -
P. 42
DPTR 是資料指標暫存器,它是 16 位元的暫存器,因此可定址 65536 個 BYTE,是
用來定址外部橫充 RAM 和外部擴充 ROM 的專用指標。例如:
MOV DPTR,#5678H ;將立即資料 5678H,存入 DPTR
MOVX A,@DPTR ;將外部 RAM 位址 5678H 的內容,存入累加器 A。
##3 暫存器定址法
8051/8052 內部 RAM 的每個暫存器庫均含有 8 個暫存器,稱為 RO-R7,若運算元是
使用 RO-R7 的定址法都稱為暫存器定址法。例如:
MOV A,R7 ;把暫存器 R7 的內容存入累加器 A。
ADD A,R3 ;把暫存器 R3 的內容加到累加器 A。
因為 8051/8052 內部有四組暫存器庫(BANK),因此有四組 RO-R7,到底目前所使用
的暫存器是屬那一個暫存器庫,是由程式狀態字暫存器(PSW) 內的 RSl,RSO 兩個位元
所決定。
##4 立即定址法
立即定址法是把運算元直接放在運算碼的後面。若運算元是常數資料,則必須以"#"
號當作立即值的前置符號。例如:
MOV A,#30H ;把一個常數 30H 存入累加器 A。
MOV R5,#05H ;把一個常數 05H 存入 R5 暫存器。
##5 索引定址法
8051/8052 的索引定址法僅適用於 ROM (程式記憶體),而且只能讀出,不能寫入。
所謂索引定址法就是以一個基底暫存器的內容,再加上一個索引暫存器的內容,所得的
值即是運算元所在的位址。採用索引定址法時,當基底暫存器的是 DPTR (資料指標暫
存器)或 PC (程式計數器),當索引暫存器的則是累加器 A。例如:
MOV A,#30H
MOV DPTR,#300H
MOVC A,@A+DPTR ;將程式記憶體位址 330H(30H+300H)的內容存入累加器 A。