通常のオペコードとMSB(最上位ビット)が設定されたオペコードの違いは何ですか?
例:
0036 5E000001 [4] return 1 2
003A 1E008000 [5] return 0 1
最初のオペコード(0x5E / 1011110)にはMSBが設定されており、2番目のオペコード(0x1E / 0011110)には設定されていません。
編集:「バイト」を「ビット」に修正しました。
通常のオペコードとMSB(最上位ビット)が設定されたオペコードの違いは何ですか?
例:
0036 5E000001 [4] return 1 2
003A 1E008000 [5] return 0 1
最初のオペコード(0x5E / 1011110)にはMSBが設定されており、2番目のオペコード(0x1E / 0011110)には設定されていません。
編集:「バイト」を「ビット」に修正しました。
少しグーグルした後、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