|
數(shù)據(jù)指針(DPTR)
是一個(gè)16位的特殊功能寄存器, 其高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示,DPTR既可以作為一個(gè)16位的寄存器來(lái)處理,也可以作為兩個(gè)獨(dú)立的8位寄存器來(lái)使用。主要功能是存放16位地址,作為片外RAM尋址用的地址寄存器(間接尋址),故稱數(shù)據(jù)指針,也可以將外部RAM中地址的內(nèi)容傳送到內(nèi)部RAM的地址所指向的內(nèi)容中。
DPH和DPL的地址分別為83H、82H。
8位單片機(jī),所有的寄存器硬件上都是8位模式訪問(wèn);“所謂的的16位,都是2個(gè)8為拼起來(lái)的”
DPTR如
Mov DPTR,#1000H
把16位的片外地址送進(jìn)來(lái),分兩次送進(jìn)DPL和DPH兩個(gè)8位寄存器
MOV DPL, #00H
MOV DPH, #0A0H
訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器的指令:
MOVX A,@DPTR讀
MOVX @DPTR,A寫(xiě)
指令以16位DPTR為間址寄存器讀片外RAM,可以尋址整個(gè)64KB的片外空間。指令執(zhí)行時(shí),在DPH中的高八位地址由P2口輸出,在DPL中的低八位地址由P0口分時(shí)輸出,并由ALE信號(hào)鎖存在地址鎖存器中。
DPTR的另一個(gè)作用是變址尋址,訪問(wèn)程序存儲(chǔ)器,做查表指令:如:
以dptr為基址寄存器,將dptr的內(nèi)容與累加器a的內(nèi)容相加得到變址地址
movc a, @a+dptr ; (a)<-----((a)+(dptr))
jmp @A+DPTR;間接轉(zhuǎn)移指令,將DPTR中的16位數(shù)和累加器A中的8位數(shù)相加,并直接送入PC,實(shí)現(xiàn)散轉(zhuǎn)功能。對(duì)A、DPTR和標(biāo)志位無(wú)影響。
|
|