В чем разница между обычными кодами операций и кодами операций с их набором MSB? - PullRequest
1 голос
/ 24 июля 2011

В чем разница между обычными кодами операций и кодами операций с установленным MSB (наиболее значимым битом)?

Пример:

0036  5E000001           [4] return     1   2
003A  1E008000           [5] return     0   1

Первый код операции (0x5E / 1011110) имеет свой MSB, а второй код операции (0x1E / 0011110) - нет.

Редактировать: исправлено "байт" в "бит", дух.

1 Ответ

1 голос
/ 24 июля 2011

После некоторого поиска в Google я нашел заголовок исходного кода Lua ( lopcodes.h ), объясняющий формат инструкции немного лучше.

Похоже, неправильно читать код операции какбайт, он должен читаться как 6 бит:

All instructions have an opcode in the first 6 bits.
Instructions can have the following fields:
`A' : 8 bits
`B' : 9 bits
`C' : 9 bits
`Bx' : 18 bits (`B' and `C' together)
`sBx' : signed Bx
...