从8000H开始的有200个字节的源数据区,每隔一个单元送到4000H开始的数据区,在目的

数据区中,每隔两个单元写一个数,如遇0DH(回车)则传送结束。

ORG 0100H(该地址只要不与系统的几个中断入口程序段冲突就行,0100H是合适的。)
START:MOV DPTR,#8000H
MOV P2,#81H (用MOVX @R0,A指令操作片外数据存储器时默认的高8位地址就是P2内容,目的地址高8位81H是不变的,所以高位要放P2中)
MOV RO,#00H
MOV R1,#30H
LOOP:MOVX A,@DPTR
MOVX @R0,A
INC DPTR
INC RO
DJNZ R1,LOOP
RET
此程序是有其它写法,但我个人认为,你这个方法是比较好的。其实好和不好是相对的也是看具体情况的,不能一概而论,比如你主程序不允许你用P2时,那你这种编法就不一定好了,可能DPTR每用一次就临时保存,再倒腾,虽麻烦但可行。
温馨提示:答案为网友推荐,仅供参考
相似回答