Python 2.6.2的位元組碼指令集一覽
阿新 • • 發佈:2019-01-08
對Python的位元組碼指令集感興趣但不知道從何下手麼?執行這段程式碼就能看到位元組碼的列表:
- import opcode
- for op in range(len(opcode.opname)):
- print('0x%.2X(%.3d): %s' % (op, op, opcode.opname[op]))
(格式:操作碼的十六進位制(十進位制): 操作碼的助記名)
Python opcode list程式碼
- 0x00(000): STOP_CODE
- 0x01(001): POP_TOP
-
0x02(002): ROT_TWO
- 0x03(003): ROT_THREE
- 0x04(004): DUP_TOP
- 0x05(005): ROT_FOUR
- 0x06(006): <6>
- 0x07(007): <7>
- 0x08(008): <8>
- 0x09(009): NOP
- 0x0A(010): UNARY_POSITIVE
- 0x0B(011): UNARY_NEGATIVE
- 0x0C(012): UNARY_NOT
- 0x0D(013): UNARY_CONVERT
- 0x0E(014): <14>
- 0x0F(015): UNARY_INVERT
- 0x10(016): <16>
-
0x11(017): <17>
- 0x12(018): LIST_APPEND
- 0x13(019): BINARY_POWER
- 0x14(020): BINARY_MULTIPLY
- 0x15(021): BINARY_DIVIDE
- 0x16(022): BINARY_MODULO
- 0x17(023): BINARY_ADD
- 0x18(024): BINARY_SUBTRACT
- 0x19(025): BINARY_SUBSCR
- 0x1A(026): BINARY_FLOOR_DIVIDE
- 0x1B(027): BINARY_TRUE_DIVIDE
- 0x1C(028): INPLACE_FLOOR_DIVIDE
-
0x1D(029): INPLACE_TRUE_DIVIDE
- 0x1E(030): SLICE+0
- 0x1F(031): SLICE+1
- 0x20(032): SLICE+2
- 0x21(033): SLICE+3
- 0x22(034): <34>
- 0x23(035): <35>
- 0x24(036): <36>
- 0x25(037): <37>
- 0x26(038): <38>
- 0x27(039): <39>
- 0x28(040): STORE_SLICE+0
- 0x29(041): STORE_SLICE+1
- 0x2A(042): STORE_SLICE+2
- 0x2B(043): STORE_SLICE+3
- 0x2C(044): <44>
- 0x2D(045): <45>
- 0x2E(046): <46>
- 0x2F(047): <47>
- 0x30(048): <48>
- 0x31(049): <49>
- 0x32(050): DELETE_SLICE+0
- 0x33(051): DELETE_SLICE+1
- 0x34(052): DELETE_SLICE+2
- 0x35(053): DELETE_SLICE+3
- 0x36(054): STORE_MAP
- 0x37(055): INPLACE_ADD
- 0x38(056): INPLACE_SUBTRACT
- 0x39(057): INPLACE_MULTIPLY
- 0x3A(058): INPLACE_DIVIDE
- 0x3B(059): INPLACE_MODULO
- 0x3C(060): STORE_SUBSCR
- 0x3D(061): DELETE_SUBSCR
- 0x3E(062): BINARY_LSHIFT
- 0x3F(063): BINARY_RSHIFT
- 0x40(064): BINARY_AND
- 0x41(065): BINARY_XOR
- 0x42(066): BINARY_OR
- 0x43(067): INPLACE_POWER
- 0x44(068): GET_ITER
- 0x45(069): <69>
- 0x46(070): PRINT_EXPR
- 0x47(071): PRINT_ITEM
- 0x48(072): PRINT_NEWLINE
- 0x49(073): PRINT_ITEM_TO
- 0x4A(074): PRINT_NEWLINE_TO
- 0x4B(075): INPLACE_LSHIFT
- 0x4C(076): INPLACE_RSHIFT
- 0x4D(077): INPLACE_AND
- 0x4E(078): INPLACE_XOR
- 0x4F(079): INPLACE_OR
- 0x50(080): BREAK_LOOP
- 0x51(081): WITH_CLEANUP
- 0x52(082): LOAD_LOCALS
- 0x53(083): RETURN_VALUE
- 0x54(084): IMPORT_STAR
- 0x55(085): EXEC_STMT
- 0x56(086): YIELD_VALUE
- 0x57(087): POP_BLOCK
- 0x58(088): END_FINALLY
- 0x59(089): BUILD_CLASS
- 0x5A(090): STORE_NAME
- 0x5B(091): DELETE_NAME
- 0x5C(092): UNPACK_SEQUENCE
- 0x5D(093): FOR_ITER
- 0x5E(094): <94>
- 0x5F(095): STORE_ATTR
- 0x60(096): DELETE_ATTR
- 0x61(097): STORE_GLOBAL
- 0x62(098): DELETE_GLOBAL
- 0x63(099): DUP_TOPX
- 0x64(100): LOAD_CONST
- 0x65(101): LOAD_NAME
- 0x66(102): BUILD_TUPLE
- 0x67(103): BUILD_LIST
- 0x68(104): BUILD_MAP
- 0x69(105): LOAD_ATTR
- 0x6A(106): COMPARE_OP
- 0x6B(107): IMPORT_NAME
- 0x6C(108): IMPORT_FROM
- 0x6D(109): <109>
- 0x6E(110): JUMP_FORWARD
- 0x6F(111): JUMP_IF_FALSE
- 0x70(112): JUMP_IF_TRUE
- 0x71(113): JUMP_ABSOLUTE
- 0x72(114): <114>
- 0x73(115): <115>
- 0x74(116): LOAD_GLOBAL
- 0x75(117): <117>
- 0x76(118): <118>
- 0x77(119): CONTINUE_LOOP
- 0x78(120): SETUP_LOOP
- 0x79(121): SETUP_EXCEPT
- 0x7A(122): SETUP_FINALLY
- 0x7B(123): <123>
- 0x7C(124): LOAD_FAST
- 0x7D(125): STORE_FAST
- 0x7E(126): DELETE_FAST
- 0x7F(127): <127>
- 0x80(128): <128>
- 0x81(129): <129>
- 0x82(130): RAISE_VARARGS
- 0x83(131): CALL_FUNCTION
- 0x84(132): MAKE_FUNCTION
- 0x85(133): BUILD_SLICE
- 0x86(134): MAKE_CLOSURE
- 0x87(135): LOAD_CLOSURE
- 0x88(136): LOAD_DEREF
- 0x89(137): STORE_DEREF
- 0x8A(138): <138>
- 0x8B(139): <139>
- 0x8C(140): CALL_FUNCTION_VAR
- 0x8D(141): CALL_FUNCTION_KW
- 0x8E(142): CALL_FUNCTION_VAR_KW
- 0x8F(143): EXTENDED_ARG
- 0x90(144): <144>
- 0x91(145): <145>
- 0x92(146): <146>
- 0x93(147): <147>
- 0x94(148): <148>
- 0x95(149): <149>
- 0x96(150): <150>
- 0x97(151): <151>
- 0x98(152): <152>
- 0x99(153): <153>
- 0x9A(154): <154>
- 0x9B(155): <155>
- 0x9C(156): <156>
- 0x9D(157): <157>
- 0x9E(158): <158>
- 0x9F(159): <159>
- 0xA0(160): <160>
- 0xA1(161): <161>
- 0xA2(162): <162>
- 0xA3(163): <163>
- 0xA4(164): <164>
- 0xA5(165): <165>
- 0xA6(166): <166>
- 0xA7(167): <167>
- 0xA8(168): <168>
- 0xA9(169): <169>
- 0xAA(170): <170>