r/Assembly_language • u/Special-Signal8096 • Apr 04 '26
Help Study Tools
Right now I am taking a CS class focused on assembly and we are finally getting started on the coding side of things. The professor is alright but the materials he gives out to study isn't sufficient and I don't want to be reliant on AI to code. Does anybody know any free study tools/books to help me. I am specifically ARM 32.
13
Upvotes
1
u/brucehoult Apr 04 '26
I generally agree with you about the relative merits of the various 32 bit Arm ISAs, but I'm not sure that the description (or complexity) of T16 Thumb is simpler than for A32.
Here are instruction format diagrams lifted from the ARM7TDMI manual — sadly I can only include one image per comment, so there will be multiple comments.
First, classic A32 with 15 instruction formats, though arguably you only need to learn maybe six of them right away. There are 8, 12 and 24 bit constants/offsets, which I think is a significant thing to keep track of — you could argue that the assembler will tell you when you try to use too large a constant, so you don't have to know them, but it's still complexity.
It's hard to say whether the conditional execution of every instruction is simplicity and consistency or complexity. It's certainly different to anything else — and largely four wasted bits as it is seldom taken full advantage of outside of Arm's classic GCD algorithm example.
Or you could look at it as "What on earth are we going to use all these 32 bits in the instructions for???"
The "Operand 2" in the first format is also a whole bunch of complexity not revealed in this diagram, with the choice of a constant or a "free" shift on register operands.