汇编–一个rep stosd循环的简单理解
源代码:
IDA汇编代码:
rep stosd循环:
从lea edi , [EBP+arg_0] 开始,到rep stosd 结束。EDI中存入的是循环操作的起始地址,ECX存入的是循环次数,EAX是循环填入的值。这一段的操作就是从EBP+var_40处开始,循环十次,向下依次填入CCCCCCCC,写入的长度由EAX决定,32位。
OD动态调试:
初始状态:
EDI赋值:
ECX EAX 赋值:
循环一次,ECX减一,将EDI地址处写入CCCCCCCC,EDI存入下一个地址
循环第二次:
.........
JGE跳转
前≥后则跳转,注意可能直观上与源代码中有些不同,这里的跳转是跳过if语句,直接跳转到之后的语句。
文章同步到我的博客:http://www.zjzhhb.com/archives/571
禁止转载