
6.应用
软件可以利用附加的数据的指针,以既增加速度及减少
码的大小,例如,块操作(复制,比较,搜索...)是公用送达
一个数据指针为“源”的指针,而另一个作为"destination"指针。
汇编语言
;使用双数据指针块移动
;破阵DPTR0 , DPTR1 , A和PSW
;注意: DPS退出的进入状态相反
;除非额外INC AUXR1加
;
00A2 AUXR1 EQU 0A2H
;
0000 909000MOV DPTR , #源;源地址
0003 05A2 INC AUXR1 ;开关数据指针
0005 90A000 MOV DPTR , # DEST ; DEST地址
0008 LOOP :
0008 05A2 INC AUXR1 ;开关数据指针
000A E0 MOVX A,@ DPTR ;获得从源代码字节
000B A3 INC DPTR ;增量源地址
000C 05A2 INC AUXR1 ;开关数据指针
000E F0 MOVX @ DPTR , A;写字节到dest
000F A3 INC DPTR ;增量DEST地址
0010 70F6JNZ LOOP ;检查0终结
0012 05A2 INC AUXR1 ; (可选)恢复DPS
INC是短( 2个字节)和快速( 12个时钟周期)的方式来操作,在SFR AUXR1的DPS位。
但是请注意, INC指令不直接强制DPS位到特定的状态,
但简单地切换它。在简单的例程,如块移动的例子中,只有一个事实,即DPS
被触发以正确的顺序重要,而不是它的实际值。换句话说,块移动
日常工作同DPS是否是在进入'0 '或' 1 ' 。注意,如果没有最后的指令
灰(INC AUXR1 ) ,该例程将与DPS退出在相反的状态。
16
AT/TS8xC51Rx2
4188E–8051–08/06