информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[ASM] EBP и ESI 06.11.02 10:57  Число просмотров: 1016
Автор: 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
<programming>
[ASM] EBP и ESI 06.11.02 09:18  
Автор: Kerk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
call recall
recall: pop esi
sub esi,offset recall

Если esi заменить на ebp то все работает, но в самом конце проги вылетает ошибка. Почему?
[ASM] EBP и ESI 06.11.02 10:57  
Автор: 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
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach