· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Проблемы адресации в Win32

Посл.отвђт Сообщенiе


Дата: Июн 4, 2004 10:32:01

Здравствуйте

Вобщем учебная защита написана и работает, но захотел оптимизировать и наткнулся на грабли. В досе я в пристыковочном коде нормально писал:

mov [bp+VARIABLE],ax

и все прекрасно работало, но вот винда... Век живи, век RTFM, все равно LMD :)
есть кусок кода:

Mov [Ebp+VARIABLE], Esi
DB 90h,90h,90h,90h
Mov Esi, [Ebp+VARIABLE]
Jmp Esi
VARIABLE DD (00000000h)

и почему оно вылетает по эксепшену ? В дебаггере смотрел, смещение правильное. Может с выравниванием что-то не то ?


Дата: Июн 4, 2004 10:35:51

Уже все исправил...
Нужно писать не:

Mov [Ebp+VARIABLE], Esi
DB 90h,90h,90h,90h
Mov Esi, [Ebp+VARIABLE]
Jmp Esi
VARIABLE DD (00000000h)

а так:

Mov Ds:[Ebp+VARIABLE], Esi
DB 90h,90h,90h,90h
Mov Esi, Ds:[Ebp+VARIABLE]
Jmp Esi
VARIABLE DD (00000000h)


Дата: Июн 4, 2004 17:55:26

А зачем использовать ebp по DS, если можно использовать другой регистр, для меня осталось тайной...


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.040