我有一个带有几个指令的简单片段:
01: mov edi, [ebp+8]
02: mov edx, edi
03: xor eax, eax
04: or ecx, 0FFFFFFFFh
05: repne scasb
06: add ecx, 2
07: neg ecx
08: mov al, [ebp+0Ch]
09: mov edi, edx
10: rep stosb
11: mov eax, edx
我应该解释一下:
1. in line和 in line的类型分别是什么。
[ebp+8]01[ebp+C]082.这段代码有什么作用?
Line
01类似于edi = *(ebp+8),它存储目标地址,不确定。但我无法解释线08按照
intel手册,SCASB (scan byte string)我假设这段代码确实初始化了字符串的缓冲区,重复写入0字节eax时间,然后分配al给edi.