Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 31.07.2011, 17:18   #1
Debris
Пользователь
 
Регистрация: 14.06.2009
Сообщений: 32
Репутация: 10
По умолчанию Адресация 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
Репутация: 618

icq: 272532204
skype: goodwin-98
По умолчанию

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

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

skype: alexcoder1
По умолчанию

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
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


12:31.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.