logo Projects Docs Learn Embed
Star on github
AI Chat

Courses

Assembly basics

What every assembly language has in common: registers, memory, addressing modes, flags, branching, loops, the stack, subroutines, and the ways a program reaches the world outside it. Start here if you have never written assembly.

M68K assembly

The Motorola 68000: eight data registers and eight address registers, an operand size written on the mnemonic itself, a condition code register, and one of the widest sets of addressing modes any CPU has offered. Big endian, and unusually pleasant to write by hand.

MIPS assembly

MIPS: 32 registers named by a convention the hardware does not enforce, three operand instructions, no flags register anywhere, and memory reached only through loads and stores. A design regular enough that most instructions are the same shape.

RISC-V assembly

RISC-V: an open instruction set with a base of about forty instructions and everything else an extension, 32 registers under two sets of names, no flags and no condition codes, and a calling convention that keeps the return address in a register.

Z80 assembly

The Zilog Z80: an 8 bit accumulator, register pairs that double as 16 bit registers, a shadow set to swap in, and 64 KB of address space. It has no system call instruction at all, so the outside world is reached through I/O ports.

logo
Specy
Changelog