# Registers

The 68000 has 16 register, 8 data registers (D0-D7) and 8 address registers (A0-A7) and they are all longword, i.e. 32 bit. No data or address register is different from any other. That means whenever you can use D0, you can always use D1-D7 also, the D0 register isn't a "main register", as the A register is on a Z80, or the registers on a x86 where all registers are made for different purposes (AX - accumulator, CX - counter, SI, DI - pointers etc). The only real difference between the registers is data registers vs. the address registers.
One important thing is that if you have a longword stored in a data register and you move a byte into it, the most significant three bytes are still there! This may cause problems when you later add or multiply the register, you MUST clear the most significant part!
The 68k also has a PC, Program Counter, as do most CPUs. Works the same way too (it is a 24 bit register). The stack pointer is actually the A7 register, so maybe you should say that A7 works differently compared to A0-A6, but it doesn't really. You could use A6 as stack pointer, except that all ROM routines and the CPU itself ( see bsr and jsr ) use A7 as the SP so it wouldn't be a good idea.

####