Assembly

mov ax, 13h

int 10h

Assembly language is for low-level programming of a CPU. Writing assembly might not be needed but it can be useful to be able to read it. An assembly language depends a lot on the CPU it is targeted for. It's a bit like a new language for each computer architecture. So common info is on this page but details on each CPU has it's own page. Look at X86 Assembler.

Mnemonics

The mnemonics are the short senseless words use to write assembler. A mnemonic takes zero or more operands and is translated to a a opcode that tells the CPU what to do. Examples of mnemonics are mov, add or jmp.

Registers

The registers of the CPU are used as operands to mnemonics. So mov ebx, 0 takes the value zero and put it in the ebx register. With assembly one need to know what registers exists, how they can be used and keep track of what is put where.

Memory

How is memory used and accessed.

Port

Besides playing around with the CPU one also need to communicate with other devices in the computer. Examples are graphic or network. How that is done varies with the hardware and the OS the code runs on. Custom I/O ports or interfaces mapped to memory addresses are the common ones.