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

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