· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.RESEARCH —› Команда АСМа -> hex-код : Таблица

. 1 . 2 . >>

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


Дата: Июл 16, 2003 20:42:13

Где можно найти таблицу какой оператор АСМа какому коду соответствует?
Например
nop = 90h
jmp = 0EBh
...


Дата: Июл 16, 2003 20:51:48

"Opcodes" HLP поставляется вместе с masm32


Дата: Июл 17, 2003 01:38:26

Тут вот какое дело.
Нет так сказать множества чисел в hex представлении
отражающегося на множество инструкций.
Опкод кодируется с помощью одного или нескольких блоков
и блоки содержат по нескольку битовых полей.
Поля же эти часто не кратны четырём, и ещё реже кратны байтам (8и). Т.е их неудобно представлять hex числами,
где каждой HEX цифре соответсвует по 4е бита.
Сплошь и рядом будет происходит то, что часть битов
одного и того же поля входят в две разные HEX цифры в которые, помимо этого входят биты других полей.
Например вот видим мы HEX код байта modr/m какой-то инструкции
СE
две цифры на видны C и E
на самом деле битовые поля в этом байте группируются
как 2:3:3.
и CE следует воспринимать как 11 001 110
т.е
11 - только регистры
001 - ecx
110 - esi

У формата какого нибудь конкретного опкода есть две части,
1ая - это уникальный идентификатор, вторая - общая, т.е.
декодируется по правилам единым для любого опкода (обычно это части которые определяют операнды (в том числе и адреса) и размер.
Чтобы понятно было о чём я говорю возьмём опкод из твоего
письма, итак ты пишешь:
----------
nop = 90h
----------

На самом деле опкод 10010 000 (90h)
Относится к группе опкода формата
10010 reg.
Который в условных мнемониках можно записать как:

xchg (e)ax,reg16/32

При этом одинаково правильно будет
декодировать в мнемонику опкод 90h
и как nop и как xchg (e)ax,(e)ax
Это случай, когда для одной реальной вещи придумали
два разных имени. (Нас тоже ведь называют иногда разными
именами, при этом имея ввиду одного и того же человека)

При этом любопытно ещё то, что xhcg eax,eax можно encode
тоже разными способами
Например с помощью байта modr/m:
87 C0
Ну ладно к нашим баранам.
Уникальный идентификатор занимать может
разное колличестов бит.
В данном случае мы имеет формат битовых полей 5:3
5 бит уникальный идентификатор (в нашем случае 10010)
3 бита поле reg - которое содержит код регистра,
в твоём примере (90) этот код 000 - т.е. код для eax.

Т.е. мы имеем уникальное поле некратное четырём.
Для понимания опкоды лучше представлять бинарно.
Общие части при этом писать условными обозначениями.

Вот маленькая обучалка, которая демонстрирует вышесказанное.


_1452828225__regfield.zip


Дата: Июл 17, 2003 09:06:38

В приложении инструкции до i586.

1253277090__X86.zip


Дата: Июл 17, 2003 10:45:16

The Svin
Чёрт побъяри (упал, очнулся, гипс)!!! Супер!!!
А у Вас много такого добра?


Дата: Июл 17, 2003 14:56:44

Самая актуальная на данный момент информация, надо полагать, находится в мануалах у производителя.

http://www.intel.com/design/pentium4/manuals/

Первые два тома.

Там про это написано подробно, хотя, как говорят, и не слишком понятно.


Дата: Июл 17, 2003 17:47:06

А у Вас много такого добра?
Конкретно по опкоду?
Есть ещё три. Каждая фокусирует внимание на
какой-то определённой проблеме(ах), связанной
со строением опкода.
Послать?


Дата: Июл 17, 2003 17:47:39

А у Вас много такого добра?
Конкретно по опкоду?
Есть ещё три. Каждая фокусирует внимание на
какой-то определённой проблеме(ах), связанной
со строением опкода.
Послать?


Дата: Июл 17, 2003 18:03:10

Да. Но не собствено это, сколько собственно письмо. :)
(Всё равно какое. Хотя я могу и сам посмотреть ваш мыл мне сейчас как-то не до того :))


Дата: Июл 17, 2003 21:02:42

Собственно письмо?
Письмо я прямо тут и написал.


Дата: Июл 18, 2003 10:39:18

The Svin
ОК.
Но я немного про другое.
Хорошо, ждите от меня письмицо. Немного освобожусь и напишу.


Дата: Июл 26, 2003 03:41:50

Во ещё три обучающие\тестирующие программки по опкоду.
Их правда лучше со статьями. Но может пока статьи напишутся на русском, можно попробывать в них поиграться.

_1319668708__train.zip


Дата: Авг 7, 2003 02:18:15

Gloomy

Берёшь HIEW(611.exe) и ...понеслась.


Дата: Авг 7, 2003 10:39:51

Уважаю Hiew.
Но есть ошибки в декодировании.


Дата: Авг 7, 2003 11:41:27

The Svin

Уважаю Hiew.
Но есть ошибки в декодировании.


Я как-то тоже разбирался с корректностью Hiew и также нашел неточности. В частности, декодирование некоторых несуществующих опкодов.
А какие, если не секрет, ошибки Вы в Hiew обнаружили?

. 1 . 2 . >>


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