|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.03.2010, 10:54 | #1 |
Пользователь
Регистрация: 21.01.2010
Сообщений: 11
|
Определение размера операнда и адреса
Привет всем.
Я тут пытаюсь свой дизассемблер сварганить на C++. Программа определяет префиксы и опкоды, но дальше возникает проблема. Как определить размер операнда и адреса(opreand size, address size)? Для примера рассмотрим опкод ADD 03H. Согласно интеловской спецификации он имеет 2 операнда : Gv, Ev. Буквы означают следующее: Код:
Пока точно не разобрался, но по-моему, этот размер определяется динамически(всякие флаги , регистры с размерами...). Но пишут же люди дизассемблеры. Не думаю, что для этого надо отслеживать предидущие комманды. Заранее спасибо. |
06.03.2010, 17:42 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Префиксы размера адреса и операнда, биты в mod r/m, специфическая командп
|
06.03.2010, 19:30 | #3 |
Пользователь
Регистрация: 21.01.2010
Сообщений: 11
|
А можно поподробнее?
Говорят, что в 64bit mode размер операнда какой-нибудь команы 32 а в compatibility mode- 16 битов. Но ведь прога может динамически перейти из 64 битового режима в компат режим. Как с этим справиться? |
06.03.2010, 22:58 | #4 |
Пользователь
Регистрация: 21.01.2010
Сообщений: 11
|
Bump!!!!))))
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
собрать команду из кода операции и операнда | Olejik | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 15 | 07.06.2009 01:46 |
Какое определение размера лучше? | Ozerich | HTML и CSS | 7 | 12.02.2009 23:55 |
Определение IP адреса клиента | RoamingFire | Работа с сетью в Delphi | 2 | 28.02.2008 14:08 |
Определение цвета и размера заголовков окон | VDLab | Win Api | 2 | 28.12.2006 17:24 |