xref: /aosp_15_r20/external/capstone/bindings/python/test_evm.py (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi#!/usr/bin/env python
2*9a0e4156SSadaf Ebrahimi
3*9a0e4156SSadaf Ebrahimi# Capstone Python bindings, by Nguyen Anh Quynnh <[email protected]>
4*9a0e4156SSadaf Ebrahimi
5*9a0e4156SSadaf Ebrahimifrom __future__ import print_function
6*9a0e4156SSadaf Ebrahimifrom capstone import *
7*9a0e4156SSadaf Ebrahimi
8*9a0e4156SSadaf Ebrahimics = Cs(CS_ARCH_EVM, 0)
9*9a0e4156SSadaf Ebrahimics.detail = True
10*9a0e4156SSadaf Ebrahimi
11*9a0e4156SSadaf Ebrahimifor i in cs.disasm("\x60\x61\x55", 0x100):
12*9a0e4156SSadaf Ebrahimi    print("0x%x:\t%s\t%s" %(i.address, i.mnemonic, i.op_str))
13*9a0e4156SSadaf Ebrahimi    if i.pop > 0:
14*9a0e4156SSadaf Ebrahimi        print("\tPop:     %u" %i.pop)
15*9a0e4156SSadaf Ebrahimi    if i.push > 0:
16*9a0e4156SSadaf Ebrahimi        print("\tPush:    %u" %i.push)
17*9a0e4156SSadaf Ebrahimi    if i.fee > 0:
18*9a0e4156SSadaf Ebrahimi        print("\tGas fee: %u" %i.fee)
19*9a0e4156SSadaf Ebrahimi    if len(i.groups) > 0:
20*9a0e4156SSadaf Ebrahimi        print("\tThis instruction belongs to groups: ", end=''),
21*9a0e4156SSadaf Ebrahimi        for m in i.groups:
22*9a0e4156SSadaf Ebrahimi            print("%s " % i.group_name(m), end=''),
23*9a0e4156SSadaf Ebrahimi        print()
24