Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[ASM] EBP и ESI 06.11.02 10:57 Число просмотров: 1011
Автор: Chingachguk <Chingachguk> Статус: Member
|
> call recall > recall: pop esi > sub esi,offset recall > > Если esi заменить на ebp то все работает, но в самом конце > проги вылетает ошибка. Почему?
Разницы НЕ ДОЛЖНО БЫТЬ.
Скорее всего, тут две ошибки :)
первая - та, что тебе не позволяет тебе корректно работать с esi. Очень маловероятно, но помни, что обращение вида:
mov [ebp],eax <==> mov SS:[ebp],eax
имеет адресацию через SS в отличии от:
mov [esi],eax <==> mov DS:[esi],eax
Хотя в win32 коде обычно селектора совпадают...
Ну а другая в том, что ebp это такой регистр, который активно используется для адресации к локльным переменным, переданным параметрам: лучше просто так его не трогать. Попробуй так:
push ebp
...
call recall
recall: pop esi
sub esi,offset recall
...
pop ebp
|
- [ASM] EBP и ESI - Kerk 06.11.02 09:18 [563]
- [ASM] EBP и ESI - Chingachguk 06.11.02 10:57 [1011]
|
|
|