You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

56 lines
1.5 KiB

opcodes = {
0x00: ['STOP', 0, 0],
0x01: ['ADD', 2, 1],
0x02: ['MUL', 2, 1],
0x03: ['SUB', 2, 1],
0x04: ['DIV', 2, 1],
0x05: ['SDIV', 2, 1],
0x06: ['MOD', 2, 1],
0x07: ['SMOD', 2, 1],
0x08: ['EXP', 2, 1],
0x09: ['NEG', 2, 1],
0x0a: ['LT', 2, 1],
0x0b: ['GT', 2, 1],
0x0c: ['EQ', 2, 1],
0x0d: ['NOT', 1, 1],
0x10: ['AND', 2, 1],
0x11: ['OR', 2, 1],
0x12: ['XOR', 2, 1],
0x13: ['BYTE', 2, 1],
0x20: ['SHA3', 2, 1],
0x30: ['ADDRESS', 0, 1],
0x31: ['BALANCE', 0, 1],
0x32: ['ORIGIN', 0, 1],
0x33: ['CALLER', 0, 1],
0x34: ['CALLVALUE', 0, 1],
0x35: ['CALLDATALOAD', 1, 1],
0x36: ['CALLDATASIZE', 0, 1],
0x37: ['GASPRICE', 0, 1],
0x40: ['PREVHASH', 0, 1],
0x41: ['COINBASE', 0, 1],
0x42: ['TIMESTAMP', 0, 1],
0x43: ['NUMBER', 0, 1],
0x44: ['DIFFICULTY', 0, 1],
0x45: ['GASLIMIT', 0, 1],
0x50: ['POP', 1, 0],
0x51: ['DUP', 1, 2],
0x52: ['SWAP', 2, 2],
0x53: ['MLOAD', 1, 1],
0x54: ['MSTORE', 2, 0],
0x55: ['MSTORE8', 2, 0],
0x56: ['SLOAD', 1, 1],
0x57: ['SSTORE', 2, 0],
0x58: ['JUMP', 1, 0],
0x59: ['JUMPI', 2, 0],
0x5a: ['PC', 0, 1],
0x5b: ['MSIZE', 0, 1],
0x5c: ['GAS', 0, 1],
0x60: ['PUSH', 0, 1], #encompasses 96...127
0xf0: ['CREATE', 4, 1],
0xf1: ['CALL', 7, 1],
0xf2: ['RETURN', 2, 1],
0xff: ['SUICIDE', 1, 1],
}
reverse_opcodes = {}
for o in opcodes:
reverse_opcodes[opcodes[o][0]] = o