Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
IA32 instruction format — помогите разобраться, плз... 29.01.04 12:03
Автор: HandleX <Александр М.> Статус: The Elderman
|
Вот, компилятор ваяю ;-)
Объясните, плз, зачем нужно поле Displacement и для чего нужны префиксы класса register nn override.
Я вообще @#$ею в плане запутанности формата команд IA32 — как дизассемблеры с ним борятся? А я ещё думал, почему IDA так медленно работает! ;-)
|
 |
Поподробнее... 29.01.04 14:52
Автор: werewolf13 Статус: Незарегистрированный пользователь
|
Я не оч. большой специалист, но если имеется в виду формат команды то ...
> Вот, компилятор ваяю ;-) > > Объясните, плз, зачем нужно поле Displacement и для чего > нужны префиксы класса register nn override.
Displacement - поле смещение в команде - 1,2 или 4 байта - полное или частичное значение эффективного адреса операнда в зависимости от других полей команды.
register nn override - не понял, поясни. (у меня под рукой только русская литература, не могу подобрать подходящий перевод ((( )
|
 |  |
Register override - для создания 8/16-битных команд в 32-битных сегментах 29.01.04 15:08
Автор: amirul <Serge> Статус: The Elderman
|
И наоборот. И для оверрайда дефолтового сегмента:
2-1
2.2. INSTRUCTION PREFIXES
The instruction prefixes are divided into four groups, each with a set of allowable prefix codes:
• Group 1
— Lock and repeat prefixes:
• F0H—LOCK.
• F2H—REPNE/REPNZ (used only with string instructions).
• F3H—REP or REPE/REPZ (use only with string instructions).
• Group 2
— Segment override prefixes:
• 2EH—CS segment override (use with any branch instruction is reserved).
INSTRUCTION FORMAT
• 36H—SS segment override prefix (use with any branch instruction is reserved).
• 3EH—DS segment override prefix (use with any branch instruction is reserved).
• 26H—ES segment override prefix (use with any branch instruction is reserved).
• 64H—FS segment override prefix (use with any branch instruction is reserved).
• 65H—GS segment override prefix (use with any branch instruction is reserved).
— Branch hints:
• 2EH—Branch not taken (used only with Jcc instructions).
• 3EH—Branch taken (used only with Jcc instructions).
• Group 3
— 66H—Operand-size override prefix.
• Group 4
— 67H—Address-size override prefix.
Вопросы возникают только с Branch hints-ами. Я так понимаю на исполнение оно не влияет, а влияет только на предсказание условных переходов - задание предпочтительного перехода
А вообще то тебе сюда: http://developer.intel.ru/download/design/Pentium4/manuals/24547112.pdf
|
 |  |
Фирменное руководство по формату инструкций 4-го пня. 29.01.04 15:02
Автор: werewolf13 Статус: Незарегистрированный пользователь
|
1) Фирменное руководство по формату инструкций 4-го пня:
http://www.intel.com/design/Pentium4/manuals/24547112.pdf
2) Если "register nn override", это "segment nn override",то он указывает, какой сегментный регистр используется в данной команде для адресации стека или данных. Префикс отменяет выбор сегментного регистра по умолчанию.
|
 |  |  |
Да, segment override, неправильно выразился. В обших чертах понятно, спасибо всем за ответы. 29.01.04 16:59
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
|
|
|