2025年4月27日 星期日 乙巳(蛇)年 正月廿八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 汇编

汇编语言MOVSB、MOVSW和MOVSD指令:将数据到EDI指向的内存

时间:03-05来源:作者:点击数:86

MOVSB、MOVSW 和 MOVSD 指令将数据从 ESI 指向的内存位置复制到 EDI 指向的内存位置。(根据方向标志位的值)这两个寄存器自动地增加或减少: 

MOVSB 传送(复制)字节
MOVSW  传送(复制)字
MOVSD 传送(复制)双字

MOVSB、MOVSW 和 MOVSD 可以使用重复前缀。方向标志位决定 ESI 和 EDI 是否增加或减少。增加 / 减少的量如下表所示:

指令  ESI 和 EDI 增加或减少的数值
MOVSB 1
MOVSW 2
MOVSD 4

【示例】复制双字数组,假设现在想从 source 复制 20 个双字整数到 target。数组复制完成后,ESI 和 EDI 将分别指向两个数组范围之外的一个位置(即超出 4 字节):

  • .data
  • source DWORD 20 DUP(OFFFFFFFFh)
  • target DWORD 20 DUP(?)
  • .code
  • cld ;方向为正向
  • mov ecx,LENGTHOF source ;设置 REP 计数器
  • mov esi,OFFSET source ;ES工指向 source
  • mov edi,OFFSET target ;ED工指向 target
  • rep novsd ;复制双字
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门