1、請問存儲器間接尋址能這樣表示lmw[mw0,p#2.0]嗎?
不能這樣表示。與地址常數(shù)p#2.0進(jìn)行偏移量運算只有在地址寄存器間接尋址時才可,例如lm[ar1,p#2.0].。地址寄存器間接尋址的一般格式是:
〖地址標(biāo)識符〗〖寄存器,p#byte.bit〗,比如:dix[ar1,p#1.5]或m[ar1,p#0.0]。
2、要弄清存儲器間接尋址與地址寄存器尋址的基本概念:
a、存儲器間接尋址具有兩個指針格式:單字和雙字。
單字指針是一個16bit的結(jié)構(gòu),從0-15bit,指示一個從0-65535的數(shù)值,這個數(shù)值就是被尋址的存儲區(qū)域的編號。
雙字指針是一個32bit的結(jié)構(gòu),從0-2bit,共三位,按照8進(jìn)制指示被尋址的位編號,也就是0-7;而從3-18bit,共16位,指示一個從0-65535的數(shù)值,這個數(shù)值就是被尋址的字節(jié)編號。 。例:
adb[mw100].dbx[md2]//讀入db10.dbx6.5數(shù)據(jù)位狀態(tài)
mw100:為單字指針,其內(nèi)容為10;md2雙字指針,其內(nèi)容為6.5。
從上面系列舉例我們至少看出來一點:單字指針只應(yīng)用在地址標(biāo)識符是非位的情況下,它確定的數(shù)值是0-65535。而對于byte.bit這種具體位結(jié)構(gòu)來說,只能用雙字指針。
b、地址寄存器尋址:
地址寄存器是專門用于尋址的一個特殊指針區(qū)域,西門子的地址寄存器共有兩個:ar1和ar2,每個32位。
地址寄存器間接尋址的一般格式是:〖地址標(biāo)識符〗〖寄存器,p#byte.bit〗,〖寄存器,p#byte.bit〗統(tǒng)稱為:寄存器尋址指針。