添加收藏夹  设为首页  深圳服务热线:13751165337  13692101218
51电子网联系电话:13751165337
位置:首页 > IC型号导航 > 首字符A型号页 > 首字符A的型号第1769页 > AT89C51AC2 > AT89C51AC2 PDF资料 > AT89C51AC2 PDF资料1第27页
A/T89C51AC2
双数据指针
描述
在A / T89C51AC2实现了第二个数据指针,加快代码执行
并减少代码大小的情况下的外部存储器存取密集的使用情况。
DPTR 0和DPTR 1顷由CPU作为DPTR看到和使用的SFR被访问
地址83H和84H是DPH和DPL地址。在AUXR1的DPS位
寄存器(参见图20)被用来选择DPTR是否是数据指针0或数据
指针1(参见图16) 。
图16 。
双数据指针的实现
DPL0
DPL1
DPTR0
DPTR1
0
DPL
1
DPS
DPH0
DPH1
0
AUXR1.0
DPTR
DPH
1
应用
软件可以利用附加的数据的指针,以既增加速度和
减小代码的大小,例如,块操作(复制,比较...)是公由供应
使用一个数据指针为“源”指针,而另一个作为“目的地”的指针。
以下是块移动实现使用两个指针和编码的一个例子
在汇编程序。最新的C编译器也需要此功能的优势,通过提供
增强算法库。
INC指令是一个短的( 2字节)和快速(6个机器周期)的方式来操作
AUXR1寄存器的DPS位。但是请注意, INC指令不直接
强制DPS位到一个特定的状态,而是简单地切换它。在简单的例程,如
块移动的例子,只是一个事实,即DPS已切换至适当的顺序垫 -
TER值,而不是它的实际值。换句话说,该块移动程序的工作原理相同,是否
DPS是在进入'0 '或' 1 ' 。
;使用双数据指针ASCII块移动
;修改DPTR0 , DPTR1 , A和PSW
;遇到空字符时结束
;注: DPS对面退出来进入状态,除非额外INC AUXR1是
额外
AUXR1EQU0A2h
移动: MOVDPTR , #源;源地址
incAUXR1 ;开关数据指针
MOVDPTR , # DEST ; DEST地址
mv_loop : incAUXR1 ;开关数据指针
movxA , @ DPTR ;通过源代码一个字节
INCDPTR ;增量源地址
incAUXR1 ;开关数据指针
MOVX @ DPTR , A;写字节到dest
INCDPTR ;增量DEST地址
jnzmv_loop ;检查NULL结束
end_move :
27
4127H–8051–02/08

深圳市碧威特网络技术有限公司