Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2011, 17:18   #1
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
По умолчанию Адресация 16 или 32 при переключении

Разбираю код, при переключении режима после установки бита PE, стоит относительный джамп E9 00 00 8B C2 (JMP rel16/32), какой нужно использовать режим jmp 00h, или jmp C28B0000. IDA как в 32х так и в 16 разрядном режиме использует запись jmp 00h, если код разбит на сегменты (прошивка биос), Если код использовать монолитный тогда 16 и 32разрядные режимы дизасемблирования отличаются, jmp C28B0000 не имеет смыла.
Обьясните кто знает почему при включении защищённого режима используется не 32 операнд и когда они начнут использоватся
Debris вне форума Ответить с цитированием
Старый 31.07.2011, 17:36   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Как загрузиться в регистр сегмента нужный дескриптор, так и начнет использоваться 32 разрядная аддресация.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 31.07.2011, 17:42   #3
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
По умолчанию

Большое спасибо
Debris вне форума Ответить с цитированием
Старый 31.07.2011, 17:52   #4
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

E90000 - jmp $+3 (16 битное смещение)
8bc2 - mov ax,dx
Сразу после установки бита PE в регистре CS все еще находится адрес сегмента, и никто не изменял его режим адресации - 16 бит. 32 битным сегмент кода сможет стать только после межсегментного перехода, при том в селекторе сегмента, в который переходит программа должен быть установлен в 1 бит D (разрядность сегмента=32)
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 31.07.2011, 18:10   #5
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
По умолчанию

Спасибо!, а ведь я читал про это и пропустил мимо ушей.... эх....
Debris вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Жужжание монитора при переключении графического режима. Levsha100 Компьютерное железо 6 11.02.2010 13:22
Кнопки Вперед, Назад при переключении вкладок Verst Общие вопросы Delphi 3 26.11.2009 16:25
Пропадает рисунок при переключении между приложениями Stas_SPb Мультимедиа в Delphi 7 15.07.2009 14:08
При переключении листов, дергает экран valerij Microsoft Office Excel 6 25.11.2008 11:55