因为我们可以在ALP中增加数据指针:
INC DPTR; //valid
但我们不能使用:
DEC DPTR; //invalid
相反,我们必须使用:
DEC DPL; //decrementing the lower nibble of Data Pointer
问题:
答案 0 :(得分:0)
8051微控制器的结构类似于tha,未提供用于递减16位数据指针(DTPR)的指令。
减少数据指针的唯一方法是分别减少低字节和高字节。 即 DEC DPL和DEC DPH尽管递减仍然涉及其他几条指令。
答案 1 :(得分:0)
DEC DPL
和 DEC DPH
递减数据指针的过程
首先减少 dpl DEC DPL
并检查进位标志(因为如果 DPL
已经包含 0x00 例如 DPTR = 0x4500
)如果 C=1
减少 dph DEC DPH
和将 '0xFF
移入 DPL 寄存器
看看这个子程序
MAIN_PROGRAM:
.......
.......
CALL DEC_DPTR
......
;DECREMENT DATA POINTER SUBROUITNE
DEC_DPTR:
MOV A, DPL
SUBB A, #01
JNC SKIP_DEC_DPTR
MOV A, #0XFF
DEC DPH
SKIP_DEC_DPTR:
MOV DPL, A
RET