我正在解析python字节码(co_code)。对于某些操作,我想知道python操作码的长度(以字节为单位)。我在哪里可以找到python操作码的长度?
答案 0 :(得分:2)
所有CPython字节码操作码都是1个字节长。在CPython 3.6+上,所有操作码另外采用1字节参数,每条指令总共2个字节。在以前的版本中,小于特殊值HAVE_ARGUMENT的操作码不带参数,大于该值的操作码采用2字节参数,每条指令总共1或3个字节。
答案 1 :(得分:0)
像这样的简单功能可能会有所帮助:
def compute_size(opcode):
if sys.version_info >= (3, 6):
return 2
return (1, 3)[opcode < dis.HAVE_ARGUMENT]