5: .Code
6: DelFromString PROC C
USES esi edi, \
0040101C 55 push ebp
0040101D 8B EC
mov ebp,esp
0040101F 83 C4 FC
add esp,0FCh
00401022 56 Push esi
00401023 57 Push edi
В стек помещается
старое значение EBP, после
чегоEBPполучает свое
значение из указателя стекаESP.
Командаaddesp,0FChна самом деле вычитает изESPчисло 4. (Нетрудно убедиться, что расширение
со знаком числаFCдаетFFFFFFFC, а это эквивалентно
–4). Чтобы удостовериться в этом, можно
вывести на экран окно с регистрами
(View/Debugwindow/Registers).
До выполнения командыESP= 0x0065fd30, а после выполненияESP= 0x0065fd2c. В окнеWatchв пустой
ячейкеNameнабираем
выражение 0x65FD30
– 0x65FD2Cи в полеValueполучаем
ответ:
0x65fd30-0x65fd2c |
0x00000004 |
Выделив эту строку, удаляем ее
нажатием клавиши Del.
Наконец, в стек
помещаются регистры ESI и EDI.