100H+80H>150H,如果正着取,会将150H地址处的值覆盖,导致你取出来的值是100H的值,打下比方:
150H原始值:0AAH,
100H原始值0BBH,
数据传送一个字节后,150H=0BBH,当传送到150H时,本想取0AAH,却变成0BBH,这是内存拷贝时尤其要注意。
倒着取,是为了防止覆盖操作,其实只能必须倒着取,因为有部分单元重合的。
下面是一些相关代码,你看看:
MOV_Data:
MOV R0,#230H
MOV R1,#180H
Loop:
MOV A,@R1
MOV @R0, A
DEC R0
DEC R1
CJNE R1, #99H, Loop
CJNE R0,#149H,Loop
RET
上面是一个子程序,你可以直接条用就可以实现上述数据搬移的效果,而且是倒着取,不会覆盖的哦。
希望对你有帮助。谢谢