22 comments

[ 2.0 ms ] story [ 74.6 ms ] thread
HLA == high level assembly[0], for any (like me) who didn’t know. I didn’t see it explained in TFA.

[0] https://en.wikipedia.org/wiki/High_Level_Assembly

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.
He has a more recent edition that deals with x86_64, too

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.

Strange, the book has no Amazon reviews and very few mentions on the internet, despite the author's popularity. Any idea why?
Publication date: October 2021
Even more strange. I just got a full version from libgen and we're still in September.
Aside from the recent publication date, assembly language is pretty niche these days.
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".

Veteran assembler folks very likely still remember the good old Randy (Randall Hyde) vs Betov (René Tournois) debate in alt.lang.asm. e.g: https://groups.google.com/g/alt.lang.asm/c/gYJ4KYpczSc?pli=1

I like HLA (never use that for production though, since I'm a mobile app dev). Too bad is not actively developed anymore.

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.
Yes, back in those days (TASM fanboy here), I had lots of fun doing stuff in Assembly.

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.

I remember reading the first edition and it wasn't based on HLA, I think? And then re-reading with HLA and thinking "why not learn C instead?"
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.