我试图理解循环内的一些汇编代码。循环从 1 运行到 255,并在循环内执行以下操作:
mov eax,DWORD PTR [ebp-0x4]
shl eax,0x2
add eax,DWORD PTR [ebp+0x8]
mov DWORD PTR [eax],0x0
Run Code Online (Sandbox Code Playgroud)
这里的DWORD PTR [ebp-0x4]指的是 1 到 255 之间的数字。
有人能弄清楚这里发生了什么事吗?谢谢。
显然它只是将数组归零:
mov eax,DWORD PTR [ebp-0x4] ; load index
shl eax,0x2 ; multiply index by 4 to get byte offset
add eax,DWORD PTR [ebp+0x8] ; add byte offset to array base address
mov DWORD PTR [eax],0x0 ; zero value at array[index]
Run Code Online (Sandbox Code Playgroud)