汇编指令:rep stos

先贴上代码,因为用的VS2013,该图为VS2013 DEBUG 版的反汇编代码

指令解析

stos

  串存储指令,英文缩写 store string , 将 eax 中的数据传送到目的地址(目的地址默认为 es:[edi]),以下两条指令相当于一条 stos指令

mov [edi], eax
add edi, 4       ;或者 sub edi, 4 

至于到底是加 4 还是减 4 ,是由方向标志 DF 来决定,可以由指令 cld 和 std 指令设置 

cld: 从低地址往高地址传送 
std: 从高地址往低地址传送

rep

  重复前缀指令,英文缩写 repeat,每执行一次, ecx 减 1,直到 ecx 减至0,重复执行结束,以下代码模拟 rep

AGAIN:  stos
        dec ecx
        jnz AGAIN

回到那段代码

 lea edi, [ebp - 0C0h]         ;将(栈顶减去0C0h)地址给edi
 mov ecx, 30h                  ;重复次数
 mov eax, 0CCCCCCCCh           ;传送的数据为 0XCCCCCCCC
 rep stos dword ptr es:[edi]   ;由高地址往低地址,填充

于是在内存中可以看到 0xcc 填充了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值