[HN Gopher] Compiling to Assembly from Scratch
___________________________________________________________________
Compiling to Assembly from Scratch
Author : AlexeyBrin
Score : 31 points
Date : 2024-09-22 13:18 UTC (9 hours ago)
(HTM) web link (keleshev.com)
(TXT) w3m dump (keleshev.com)
| pjmlp wrote:
| I got the ebook when it came out, and is relatively nice as ramp
| up into the world of compiler development.
| stonethrowaway wrote:
| Speaking of embedded systems, I have an old board, an offshoot of
| Zilog Z80 called Rabbit. I think recently Dave from EEVBlog took
| apart one of his ancient projects and I was floored to see a
| Rabbit. Talk about a left hook. Assuming this is Hacker News, I
| suspect someone probably knows what I'm talking about. The
| language used (called "Dynamic C") has some unconventional
| additions, a kind of coroutine mechanism in addition to chaining
| functions to be called one after another in groups. It's mostly C
| otherwise, so I suspect some macro shennanigans with interrupt
| vector priority for managing this coroutine stuff.
|
| Anyhow, so I've got a bunch of .bin files around for it, no C
| source code, just straight assembly output ready to be flashed.
| And the text and data segments are often interwoven, each fetch
| being resolved to data or instruction in real time by the rabbit
| processor. So I've been thinking of sitting down, going through
| the assembly/processor manual for the board and just writing a
| board simulator hoping to get it back to source code by blackbox
| reversing in a sense. I'd have to rummage through JEDEC for the
| standard used by the EEPROM to figure out what pins it's using
| there and the edge triggering sequences. Once I can execute it
| and see what registers and GPIOs are written when, I can probably
| figure out the original code path. Not sure if anyone has tips or
| guides or suggestions here.
| Something1234 wrote:
| Any chance a decompiler like ghidra might get you part ways
| there?
| stonethrowaway wrote:
| The closest I came across was a Z80 simulator, I forget the
| name of it. But it allowed you to step through command by
| command giving you ability to query the processor state in a
| terminal.
|
| So I don't know if it would be easier trying to find this,
| and updating it to support rabbit, vs trying to wedge
| something into ghidra which itself is an undertaking of a
| behemoth platform. As far as I know ghidra does not have Z80
| support.
___________________________________________________________________
(page generated 2024-09-22 23:00 UTC)