diff options
author | yenatch <yenatch@gmail.com> | 2013-06-27 22:28:53 -0400 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2013-06-27 22:28:53 -0400 |
commit | 117c433dc2cea58a18e7dfba5c1e0c5860136f78 (patch) | |
tree | dd8bdc4168f54361aa223a10dc1b69c4172dd7f9 /gbz80disasm.py | |
parent | c805f6ac359743e4aa8e73211d1aab3d65e6ed55 (diff) |
gbz80disasm: use existing labels as addresses
original-commit-id: fe4b13e304decc48af0918fce281ed588f867a72
Diffstat (limited to 'gbz80disasm.py')
-rw-r--r-- | gbz80disasm.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gbz80disasm.py b/gbz80disasm.py index ed546ef..c1b306c 100644 --- a/gbz80disasm.py +++ b/gbz80disasm.py @@ -587,6 +587,12 @@ def find_label(local_address, bank_id=0): return constants[local_address] return None +def find_address_from_label(label): + for label_entry in all_labels: + if label == label_entry["label"]: + return label_entry["address"] + return None + def asm_label(address): # why using a random value when you can use the address? return '.asm_%x' % address @@ -898,10 +904,15 @@ def all_outstanding_labels_are_reverse(byte_labels, offset): if __name__ == "__main__": + load_labels() addr = sys.argv[1] if ":" in addr: addr = addr.split(":") addr = int(addr[0], 16)*0x4000+(int(addr[1], 16)%0x4000) else: - addr = int(addr, 16) + label_addr = find_address_from_label(addr) + if label_addr: + addr = label_addr + else: + addr = int(addr, 16) print output_bank_opcodes(addr)[0] |