MOVSB、MOVSW和MOVSD指令

MOVSB、MOVSW和MOVSD指令



MOVSB、MOVSW、MOVSD指令将数据从ESI指向的内存位置复制到EDI指向的内存位置

指令功能
MOVSB传送(复制)字节
MOVSW传送(复制)字
MOVSD传送(复制)双字
指令ESI 和 EDI增加或减少的数值
MOVSB1
MOVSW2
MOVSD4


使用重复前缀:这些指令只能处理一个或一对内存数值。如果加上重复前缀,指令就可以以ECX作计数器重复执行,下面为可用的重复前缀:

指令功能
REPECX > 0时重复
REPZ、REPE零标志位置1 且 ECX>0时重复
REPNZ、REPNE零标志位清零 且 ECX>0时重复

方向标志位:方向标志位的状态,会影响ESI和EDI的增加或减少。用CLD和STD指令来修改方向标志位:

  • CLD 方向标志位清零(正向)
  • STD 方向标志位置1 (反向)
方向标志位的值对 ESI 和 EDI 的影响地址顺序
0增加低到高
1减少高到低

示例:假设现在想从 源地址复制20个双字整数到 目标地址:

cld						;设置方向为正向
mov ecx, 20				;设置rep重复次数
mov esi, 源地址
mov edi, 目标地址		
rep movsb				;复制双字
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值