This gets shared a lot whenever Assembly is mentioned on HN but this is a pretty good intro to arm32 Assembly. The tutorials and examples can be run on a physical or emulated Raspberry Pi :
This 'used to be' the way to write OS code -- well, not quite this well-organized, but, yeah, the MACRO facility was used to clean up the rough edges, and functions (subroutines, methods, ...) provided big chunks of, well, functionality. The TOPS-10 OS did this. As did TOP-20.
libgen (discussed recently, as they added an ipfs frontend) has a version of the 1st edition (16bit) in a single PDF that isn't horribly formatted, if anyone cares.
Ah, this takes me back. HLA really helped me to learn the basics back in the day. To be honest nowadays my assembly skills are mainly read-only. Usually when I'm debugging some weird crash or looking to see how something gets optimized (or doesn't). Still, I'm very glad to have learned.
If nothing else, it rid me of the notion that C is "portable assembly".
Oh yes those were the days. Such discussions would never be allowed in modern forums/discord. It was a kind of assembly heyday. HLA, FASM, NASM, RosAsm... most of them seem to have either disappeared or stagnated.
There is a tutorial for Windows assembler somewhere - it taught how to make OLE calls directly from asm. Somehow I thought it looked MUCH simpler in asm than in C++. No pesky types and no weird cast errors.
Looking back this guide is the one thing I likely wouldn’t have had my career without. It defined me as a low level programmer at a young age and that wired me up to all the projects and companies I’ve worked on/for.
There was also a good learn c++ in 21 days back then which served me similarly well. These guides are responsible for tons of innovation from the people who used them to bootstrap over the years.
22 comments
[ 2.0 ms ] story [ 74.6 ms ] threadhttps://azeria-labs.com/writing-arm-assembly-part-1/
[0] https://en.wikipedia.org/wiki/High_Level_Assembly
https://nostarch.com/art-64-bit-assembly
I haven’t read it yet, but skimming it, I don’t see many references to HLA which is nice.
It’s oriented towards windows and masm, but seems like a good intro to the subject even if you’re working with macOS (intel) or Linux.
[0] http://www.tortall.net/projects/yasm/manual/html/manual.html
If nothing else, it rid me of the notion that C is "portable assembly".
I like HLA (never use that for production though, since I'm a mobile app dev). Too bad is not actively developed anymore.
Also readonly over here, who can manage the amount of variations on modern ISAs.
Still, even when occasionally debugging JIT code it is helpful to at least being able to read it.
There was also a good learn c++ in 21 days back then which served me similarly well. These guides are responsible for tons of innovation from the people who used them to bootstrap over the years.