普通操作码和设置了 MSB(最高有效位)的操作码有什么区别?
例子:
0036 5E000001 [4] return 1 2
003A 1E008000 [5] return 0 1
第一个操作码 (0x5E/1011110) 设置了 MSB,而第二个操作码 (0x1E/0011110) 没有。
编辑:将“字节”更正为“位”,呵呵。
普通操作码和设置了 MSB(最高有效位)的操作码有什么区别?
例子:
0036 5E000001 [4] return 1 2
003A 1E008000 [5] return 0 1
第一个操作码 (0x5E/1011110) 设置了 MSB,而第二个操作码 (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