1

通常のオペコードとMSB(最上位ビット)が設定されたオペコードの違いは何ですか?

例:

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

最初のオペコード(0x5E / 1011110)にはMSBが設定されており、2番目のオペコード(0x1E / 0011110)には設定されていません。

編集:「バイト」を「ビット」に修正しました。

4

1 に答える 1

1

少しグーグルした後、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
于 2011-07-24T16:27:33.673 に答える