2011-05-15 307 views
1

我想了解循環內的一些彙編代碼。循環從1到255,做循環內的以下內容:x86彙編程序:shl和其他指令

mov eax,DWORD PTR [ebp-0x4] 
shl eax,0x2 
add eax,DWORD PTR [ebp+0x8] 
mov DWORD PTR [eax],0x0 

這裏DWORD PTR [ebp-0x4]是指從1將255

有人能弄清楚是怎麼回事是多少?謝謝。

回答

4

它只是似乎歸零的數組:

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] 
+0

大,當然!謝謝。一直在看它,但只是看不到它。 – danielhc 2011-05-15 19:37:27

+0

爲什麼不只是使用LEA進行地址計算? – 2014-09-10 03:41:20