普通操作码和操作码与MSB(最高有效位)设置有什么区别?
示例:
0036 5E000001 [4] return 1 2
003A 1E008000 [5] return 0 1
第一个操作码(0x5E / 1011110)设置了MSB,第二个操作码(0x1E / 0011110)没有设置。
编辑:将'byte'更正为'bit',呃。
答案 0 :(得分: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