I imagine an Assembly reader sees these things. I wonder if there’s a guide like this for them.
I imagine an Assembly reader sees these things. I wonder if there’s a guide like this for them.
Other than that, I like "Assembly Language Step By Step" by Jeff Duntemann, which is currently in its third edition and is Linux-only, as opposed to previous editions which were MS-DOS and Linux. He has example assembly code (Intel syntax for NASM, another reason I like his book) for download on his website:
http://www.duntemann.com/assembly.html
My only annoyance is that apparently, even the most recent edition from 2009 is still 32-bit only.
Anyway, beyond that, you'd be looking for information on using assembly language to perform some specific task, like writing vectorized numerical code.
https://wiki.osdev.org/Calling_Conventions
Richard Blum [2] after Dunteman.
[1] At a reasonable level of approximation.
[2] https://www.wiley.com/en-us/Professional+Assembly+Language-p...
"32-bit x86 code" just means "code that does not use any of the AMD64 ISA." (And at this point, probably SSE2+ and a handful of other extensions.)
GP is correct: anyone that "knows" AMD64 assembly inherently must know 32-bit ASM because one must use the original x86 registers, instructions, etc. for the vast majority of tasks.
People are still constantly running what was formerly known as "32-bit x86 code" in their 64-bit applications.
1. Data movements (mov)
2. Control flow (various jumps with corresponding tests, call and ret)
3. Calling convention. But you can often wing this and figure it out from context.
Like the Good Lord intended.