Ассемблер x86: shl и другие инструкции - PullRequest
1 голос
/ 15 мая 2011

Я пытаюсь понять некоторый ассемблерный код внутри цикла. Цикл выполняется с 1 по 255 и выполняет следующие действия внутри цикла:

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.

Может кто-нибудь понять, что здесь происходит? Спасибо.

1 Ответ

4 голосов
/ 15 мая 2011

Это просто обнуление массива:

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...