位置:首页 > IC型号导航 > 首字符D型号页 > 首字符D的型号第100页 > DS80C323-ECD > DS80C323-ECD PDF资料 > DS80C323-ECD PDF资料1第13页

DS80C320 / DS80C323高速/低功耗微控制器
双数据指针
数据存储块可以移动使用双数据指针( DPTR )加速。该标准8032
DPTR是用来解决芯片外数据RAM或外设一个16位的值。在
DS80C320 / DS80C323 ,标准的16位数据指针称为DPTR0 ,位于SFR地址
82H和83H 。这些都是标准的位置。新DPTR位于SFR 84H和85H是
被称为DPTR1 。在DPTR选择位( DPS )选择主动指针和位于的LSB
SFR位置86H 。在寄存器中为86H的其它位产生任何影响,并且设置为0 ,用户交换机
数据指针被切换的LSB寄存器86H之间。增量( INC)的指令是最快的
的方式来实现此目的。所有DPTR相关的指令使用当前选定的DPTR的任何活动。
因此,只有一个指令需要从一个目的地地址的源切换。使用
从需要保存的源地址和目的地址做了块时,双数据指针可以节省代码
动。一旦加载,软件简单DPTR和1之间的相关寄存器位置开关
如下所示。
DPL
DPH
DPL1
DPH1
DPS
82h
83h
84h
85h
86h
低字节的原始DPTR
高字节原始DPTR
低字节DPTR新
高字节DPTR新
DPTR选择( LSB )
下面列出的示例代码说明了使用双DPTR的储蓄。示例程序是
原始代码写为8051和总共需要1869 DS80C320 / DS80C323个机器周期。这
需要299ms ,在25MHz的执行。使用双DPTR新的代码只需要1097机
周期服用175.5ms 。双DPTR节省了772个机器周期或123.5ms一个64字节的块移动。
由于每个穿过环时相比,单DPTR的方法节省了12个机器周期,
更大的块使用此功能获得更高的效率。
没有双数据指针的64字节块移动
; SH和SL是高字节和低字节的源地址。
; DH和DL是目标地址高字节和低字节。
MOV
MOV
MOV
MOV
MOV
MOV
R5 , # 64D
DPTR , #SHSL
R1 , #SL
R2 , #SH
R3 , #DL
R4 , #DH
;
;
;
;
;
;
字节数移动
装入源地址
保存源低字节
保存源高字节
保存目标低字节
保存目标高字节
#周期
2
3
2
2
2
2
移动:
;这个循环被执行的TIMES加载到R 5的个数,在本实施例64
MOVX
MOV
MOV
MOV
MOV
MOVX
INC。
MOV
MOV
MOV
MOV
INC。
DJNZ
A, @ DPTR
R1 , DPL
R2 , DPH
DPL , R3
DPH , R4
@ DPTR ,A
DPTR
R3 , DPL
R4 , DPH
DPL , R1
DPH , R2
DPTR
R5 , MOVE
;
;
;
;
;
;
;
;
;
;
;
;
;
阅读源数据字节
保存新源指针
装载新的目的地
将数据写入目的地
下一个目的地地址
保存新目标指针
获得新源指针
下一个源地址
完成了表?
2
2
2
2
2
2
3
2
2
2
2
3
3
13 40