微机原理与接口技术(第2版)电子工业出版社问题摘记

1.P71页 串操作指令
在书中倒数第二段写道:若AR1与AR2的地址分别为1000H、1020H,此时源子串与目的子串在存储区产生重叠,可以采用以下的方式处理,即将子串自尾至首传送

LEA SI,AR1
LEA DI,AR2
MOV CX,100
ADD SI,100-1
ADD DI,100-1
STD
REP MOVSB

粗看还是比较难理解的,为什么就可以避免源和目标子串重叠的问题,我们分开来考虑
1.如果还是从头到头传送,开始时偏移地址为1000H中放的是23H,传完把23H给到偏移地址为1020H的目的地址,问题出现了,原本源字串中偏移地址为1020H的地方是有数据的,相当于传一次就覆盖了一次,后面全乱了
2.如果是从尾到尾,那么开始SI指向的是偏移地址为1063H的数据,而DI指向的是偏移地址为1083H的数据,每一次SI和DI的指针都往上移动,那么可以保证SI指向的数据不会被DI指向的数据覆盖掉,实现了避免源和目标子串重叠

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值