Assembly (x86-64, AArch64, RISC-V)
Assembly (x86-64, AArch64, RISC-V) practice
21 exercises and 87 quizzes from the lessons of this track. Sample tests run in your browser; what you pass is kept in this browser only.
Start here: what assembly is and how to run it
Bits, bytes and numbers
How a CPU runs your program
Moving data: registers, memory and addresses
Arithmetic, logic and flags
- Quiz: Addition, subtraction and multiplication
- Quiz: Division: traps, defined results, remainders
- Quiz: Bitwise logic, shifts and rotates
- Compute the AArch64 flags of adds and subs
- Quiz: Flags and condition codes
- Add and subtract numbers made of 64-bit limbs
- Quiz: Carries and 128-bit arithmetic
- Write the fallbacks for missing bit instructions
- Quiz: Bit-manipulation instructions and extensions
Branches, loops and jump tables
Functions, the stack and calling conventions
- Quiz: The stack: push, pop and red zones
- Quiz: Calls, returns and the link register
- Quiz: Calling conventions: arguments and returns
- Quiz: Callee-saved registers and stack frames
- Quiz: Stack alignment and the crashes it causes
- Quiz: Recursion in assembly
- Quiz: Structs, variadic calls and large values
Talking to the operating system
Interfacing with C, C++ and Rust
Floating point and SIMD
Reading compiler output
Debugging at the instruction level
Atomics and memory ordering
Performance and microarchitecture
Security at the machine level (defensive)
Privilege, exceptions and bare metal
32-bit Arm: A32, Thumb-2, CPSR and IRQ/FIQ
- Decode a CPSR value and the registers its mode owns
- Quiz: 32-bit Arm: registers, CPSR and processor modes
- Encode a constant as an A32 rotated immediate, or with MVN
- Quiz: A32 data processing and the barrel shifter
- The addresses an LDM or STM touches, and its final base
- Quiz: A32 branches, load-store and stack instructions
- Decode what a Cortex-M core leaves after an exception
- Quiz: Thumb, Thumb-2 and the Cortex-M exception model
- The return instruction and the two addresses an exception's LR gives
- Quiz: Exceptions, IRQ and FIQ on classic Arm
- Report the values a lab run got wrong
- Quiz: 32-bit Arm lab programs and exam practice
8-bit assembly: the 8051 microcontroller and the 8085
- Write Intel HEX records and their checksums
- Quiz: 8-bit toolchains: assemblers, HEX and simulators
- Correct a binary sum to packed BCD with Intel's DAA rule
- Quiz: The 8085 for assembly programmers: a bridge
- Classify an 8051 internal data address and find a bank register
- Quiz: The 8051: memory map, registers and SFRs
- The code address each MOVC reads, and a PC table's offset
- Quiz: 8051 assembly: addressing modes and lab programs
- Compute 8051 timer reloads for a delay and for a baud rate
- Quiz: 8051 timers, serial port and interrupts
- Count the passes, comparisons and swaps of the 8051 sort
- Quiz: 8051 lab programs and viva practice
The three ISAs today, compared
Results here are what this browser has checked: feedback for you, not proof. They stay on this device; your Learn progress can be exported to a file. · Back to the Assembly (x86-64, AArch64, RISC-V) track