>>10457>>10464This has already been done:
https://common-lisp.net/project/movitz/https://github.com/froggey/MezzanoIt doesn't feel right to talk about Lisp so much in the low level programming thread, mostly because Lisp already has a thread.
What assembler do you all use? What architectures do you know? I'm getting better with MIPS and GAS, mostly because there's an apparent lack of advanced MIPS assemblers like you would see for other architectures, like FASM. I'm also looking into Gforth's MIPS assembler.
It's interesting to see how a postfix assembler works. It only further helps solidify the difference between the assembler language, the syntax, and the instruction set itself, the semantics.
I'll repost this because it's appropriate for the thread:
Bitfield:|12345678|12345678|12345678|12345678|
Register:|opcodeRR|RRRrrrrr|RRRRRsha|mtfuncti|
Immediate:|opcodeRR|RRRrrrrr|xxxxxxxx|xxxxxxxx|
Jump:|opcodeXX|XXXXXXXX|XXXXXXXX|XXXXXXXX|
opcode: Denotes the type of instruction.
RRRRR, rrrrr: Denotes the registers used by the instruction for sources and the destination.
shamt: The shift amount, used for some instructions.
functi: Denotes the function being used for register instructions, such as addition or a right-shift.
x: Denotes a 16-bit immediate value.
X: Denotes a 26-bit address.
Isn't it beautiful? The regularity both makes it easier to learn and also makes developing MIPS tools much simpler than for a complex architecture such as x86. I suppose that makes it ironic that MIPS tools are so easily outnumbered by x86.