# Instruction Summary

The instructions are divided into 8 classes depending on how they work and what they do. Here is a short description of all instructions the Motorola 68000 will understand:
Data Movement
Integer Arithmetic
Logical Operations
Shift And Rotation
Bit Manipulation
BCD Instructions
Program Control
System Control
Other Instructions

All instructions are divided into 5 parts: a description, address methods, data length, flags, and syntax.
The address method shows which operands are allowed. Often you can't combine different address methods with each other, but that is explained in the description.
In data length you can see if you can use longwords, words or maybe only a byte. Some instructions can use words if you choose one address method, but you can use byte or longword if you choose another address method.
The flags part shows how the flags are set after the instruction has been executed. It will be one of the following symbols

S | Standard setting - see below
0 | The flag is always cleared
1 | The flag is always set
Undef | Undefined - you can not be sure how the flag will be set
U | Unaffected - the flag does not change during the instruction

or a longer description, if it's a bit special.
The Z, N and V flags are often set the same way (standard setting). The Z flag is usually set if the destination register (or the result) is zero, else the flag is cleared. The N flag is usually set if the most significant bit of the result is set (the most significant bit is the sign bit and shows if the number is negative or positive). The V flag is often set if the instruction resulted in an overflow (there weren't enough bits to store the answer in).
Many instructions don't change any flags, then you'll see "Unaffected" directly after FLAGS.
The syntax shows how the instructions can look like. Often, letters (x and y) is shown where there should be numbers between 0-7.