单片机中数据指针DPTR用法的概括?
1个回答
展开全部
在Intel MCS-51 单片机结构中 16位DPTR 寄存器能对存贮区内的各个部分进行寻址使用 DPTR 寻址存贮器的指令如下所示:
MOVX @DPTR,A ; 将累加器 A 的内容送到由 DPTR 寻址的数据存贮区内
MOVX A @DPTR ;将由 DPTR 寻址的数据存贮区内的内容送到累加器 A
805 1结构用脚 PSEN和RD 分别选通程序存贮器 只读 和数据存贮器 MOVX 指令访问数据存贮器(例如RD脚 数据存贮器一般是指 RAM 或存储映像 I/O
MOVC A @DPTR ;将由 DPTR 寻址的程序存贮区内的内容送到累加器 A
MOVC 指令通过访问程序存贮器 例如PSEN 脚,以存取只读常数(例如:数据表字符串) 程序存贮器一般是指 ROM 或EPROM
JMP @A+DPTR 转移到由 DPTR和A 的内容相加形成的地址处
相加形成的地址送 PC寄存器 DPTR 和A 都没有改变 这条指令常用于执行 查表功能在表内 DPTR指向表的基址 变址由A 表示,操作DPTR的指令如下所示:
INC DPTR DPTR加1
MOV DPTR #16 将16 位立即数送到 DPTR
然而DPTR 也与其他 CPU 寄存器如 A B PSW 一样被操纵为特殊功能寄存器 SFR
所有特殊功能寄存器通过各种指令 例如 PUSH 和MOV 存取字节 并采用 直接寻址方
式
16 位DPTR可被映像成两个特殊功能寄存器 用于字节寻址 这两个特殊功能寄存
器即为DPH 高位字节 地址为 83H 和DPL 低位字节 地址为 82H 指令如下
MOV DPTR #1234H 用立即数1234H装载DPTR
其功能等同于执行下面两条程序 但执行程序的时间和程序大小不相等
MOV DPH #12H 将立即数12H送到 DPTR 高字节 83H
MOV DPL #34H 将立即数 34H 送到 DPTR 低字节 82H
MOVX @DPTR,A ; 将累加器 A 的内容送到由 DPTR 寻址的数据存贮区内
MOVX A @DPTR ;将由 DPTR 寻址的数据存贮区内的内容送到累加器 A
805 1结构用脚 PSEN和RD 分别选通程序存贮器 只读 和数据存贮器 MOVX 指令访问数据存贮器(例如RD脚 数据存贮器一般是指 RAM 或存储映像 I/O
MOVC A @DPTR ;将由 DPTR 寻址的程序存贮区内的内容送到累加器 A
MOVC 指令通过访问程序存贮器 例如PSEN 脚,以存取只读常数(例如:数据表字符串) 程序存贮器一般是指 ROM 或EPROM
JMP @A+DPTR 转移到由 DPTR和A 的内容相加形成的地址处
相加形成的地址送 PC寄存器 DPTR 和A 都没有改变 这条指令常用于执行 查表功能在表内 DPTR指向表的基址 变址由A 表示,操作DPTR的指令如下所示:
INC DPTR DPTR加1
MOV DPTR #16 将16 位立即数送到 DPTR
然而DPTR 也与其他 CPU 寄存器如 A B PSW 一样被操纵为特殊功能寄存器 SFR
所有特殊功能寄存器通过各种指令 例如 PUSH 和MOV 存取字节 并采用 直接寻址方
式
16 位DPTR可被映像成两个特殊功能寄存器 用于字节寻址 这两个特殊功能寄存
器即为DPH 高位字节 地址为 83H 和DPL 低位字节 地址为 82H 指令如下
MOV DPTR #1234H 用立即数1234H装载DPTR
其功能等同于执行下面两条程序 但执行程序的时间和程序大小不相等
MOV DPH #12H 将立即数12H送到 DPTR 高字节 83H
MOV DPL #34H 将立即数 34H 送到 DPTR 低字节 82H
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询