Перейти к содержанию

Форматы инструкций

Сводная таблица

ID Имя Длина Синтаксис
00h S0 1B <OP>
01h S1 2B <OP> <rD>
02h S2 2B <OP> <rS>
03h S3 2B <OP> <rS/D>
04h S4 2B <OP> <imm8>
05h S5 3B <OP> <imm16>
06h S6 5B <OP> <imm32>
07h A0 4B <OP> <SF> <rS/D> <rS>
08h A1 4B <OP> <SF> <rS/D> <imm8>
09h A2 5B <OP> <SF> <rS/D> <imm16>
0Ah A3 7B <OP> <SF> <rS/D> <imm32>
0Bh J0 6B <OP> <COND> <imm32>
0Ch J1 3B <OP> <COND> <rS>
0Dh I0 6B <OP> <imm8> <imm32>
0Eh H0 3B <OP> <rS/D> <disp8>
0Fh D0 4B <OP> <SF> <rD> <rS>
10h D1B 4B <OP> <SF> <rD> <imm8>
11h D1W 5B <OP> <SF> <rD> <imm16>
12h D1DW 7B <OP> <SF> <rD> <imm32>
13h D2F 7B <OP> <SF> <rS> <Addr32>
14h D2S 5B <OP> <SF> <rS> <rB>:<rA>
15h D2R 4B <OP> <SF> <rS> <rA>
16h D2SD 6B <OP> <SF> <rS> <rB>:<rA> <disp8>
17h D2RD 5B <OP> <SF> <rS> <rA> <disp8>
18h D3F 7B <OP> <SF> <rD> <Addr32>
19h D3S 5B <OP> <SF> <rD> <rB>:<rA>
1Ah D3R 4B <OP> <SF> <rD> <rA>
1Bh D3SD 6B <OP> <SF> <rD> <rB>:<rA> <disp8>
1Ch D3RD 5B <OP> <SF> <rD> <rA> <disp8>

Пояснения к обозначениям

  • <OP> - код операции (opcode).
  • <SF> - суффикс / режим (byte, word, dword, register).
  • <rD> - регистр-приёмник (destination).
  • <rS> - регистр-источник (source).
  • <rS/D> - регистр, который может быть и источником, и приёмником.
  • <rA>, <rB> - регистры базы и индекса.
  • <imm8>, <imm16>, <imm32> - непосредственные значения.
  • <Addr32> - абсолютный 32-битный адрес.
  • <disp8> - 8-битное смещение.
  • <COND> - код условия перехода.

Длина инструкции

Длина закодирована в PLA-таблице LENGHT_PLA. Выходное значение - это длина − 1:

Выход Длина
0000 1 байт
0001 2 байта
0010 3 байта
0011 4 байта
0100 5 байт
0101 6 байт
0110 7 байт

Полная таблица LENGHT_PLA:

Вход Выход Формат Длина
00000 0000 S0 1B
00001 0001 S1 2B
00010 0001 S2 2B
00011 0001 S3 2B
00100 0001 S4 2B
00101 0010 S5 3B
00110 0100 S6 5B
00111 0011 A0 4B
01000 0011 A1 4B
01001 0100 A2 5B
01010 0110 A3 7B
01011 0101 J0 6B
01100 0010 J1 3B
01101 0101 I0 6B
01110 0010 H0 3B
01111 0011 D0 4B
10000 0011 D1B 4B
10001 0100 D1W 5B
10010 0110 D1DW 7B
10011 0110 D2F 7B
10100 0100 D2S 5B
10101 0011 D2R 4B
10110 0101 D2SD 6B
10111 0100 D2RD 5B
11000 0110 D3F 7B
11001 0100 D3S 5B
11010 0011 D3R 4B
11011 0101 D3SD 6B
11100 0100 D3RD 5B