|
12 | 12 | from .link import make_binary
|
13 | 13 | garbage_collect('after import')
|
14 | 14 |
|
15 |
| - |
16 |
| -def src_to_binary(src, cpu): |
| 15 | +def src_to_binary_ext(src, cpu): |
17 | 16 | assembler = Assembler(cpu)
|
18 | 17 | src = preprocess(src)
|
19 | 18 | assembler.assemble(src, remove_comments=False) # comments already removed by preprocessor
|
20 | 19 | garbage_collect('before symbols export')
|
21 | 20 | addrs_syms = assembler.symbols.export()
|
22 |
| - for addr, sym in addrs_syms: |
23 |
| - print('%04d %s' % (addr, sym)) |
24 |
| - |
25 | 21 | text, data, bss_len = assembler.fetch()
|
26 |
| - return make_binary(text, data, bss_len) |
| 22 | + return make_binary(text, data, bss_len), addrs_syms |
27 | 23 |
|
| 24 | +def src_to_binary(src, cpu): |
| 25 | + binary, addrs_syms = src_to_binary_ext(src, cpu) |
| 26 | + for addr, sym in addrs_syms: |
| 27 | + print('%04d %s' % (addr, sym)) |
| 28 | + return binary |
28 | 29 |
|
29 | 30 | def assemble_file(filename, cpu):
|
30 | 31 | with open(filename) as f:
|
|
0 commit comments