22.09.2015 Views

of Microprocessors

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Table 5-4. 68000 Instruction Set Summary (Cont.)<br />

Opcode Size Source Destination Operation<br />

RTS<br />

SBCD<br />

Scc<br />

STOP<br />

SUB<br />

SUBA<br />

SUBI<br />

SUBQ<br />

SUBX<br />

SWAP<br />

TAS<br />

TRAP<br />

TRAPV<br />

TST<br />

UNLK<br />

B 0<br />

B M<br />

B<br />

116<br />

BWL Gs<br />

BWL 0<br />

WL Gs<br />

BWL J<br />

BWL Q3<br />

BWL 0<br />

BWL M<br />

W<br />

B<br />

L<br />

14<br />

o<br />

M<br />

Gd-A<br />

o<br />

Gm-R<br />

A<br />

Gd-A<br />

Gd<br />

o<br />

M<br />

D<br />

Gd-A<br />

Gd-A<br />

A<br />

Program counter restored from the stack<br />

Binary coded decimal subtract source from<br />

destination with extend<br />

Set ail bits in destination equal to specified<br />

condition (false = 0, true = 1)<br />

Load source into status register and stop<br />

until interrupted, privileged<br />

Twos complement binary subtract source<br />

from destination with result stored in<br />

destination<br />

Twos complement binary subtract source<br />

from destination with extend<br />

Swap 16-bit halves <strong>of</strong> destination<br />

Set negative and zero condition code according<br />

to destination and then set bit 7 <strong>of</strong><br />

destination; uses special read-modifywrite<br />

bus cycle<br />

Generate internal interrupt to trap vector<br />

specified by 4-bit immediate field<br />

Generate internal interrupt if overflow condition<br />

is set<br />

Set condition codes according to destination<br />

The stack pointer is loaded from the specified<br />

address register; a long word is then<br />

popped from the stack and loaded into the<br />

address register<br />

Addressing mode key:<br />

Gs General source address, any <strong>of</strong> the coded address modes in Table 5-3.<br />

Gd General destination address, any <strong>of</strong> the coded address modes except the immediate and relative<br />

modes.<br />

Gm General memory address, any <strong>of</strong> the coded address modes except register direct.<br />

Gj General jump address, any <strong>of</strong> the coded modes except register direct, predecrement, postincrement,<br />

and immediate.<br />

-A Address register direct not allowed.<br />

- R Neither address nor data register direct allowed.<br />

- + Address register indirect postincrement not allowed.<br />

Address register indirect predecrement not allowed.<br />

- + Neither postincrement nor predecrement is allowed.<br />

A Any address register.<br />

D Any data register.<br />

M Address register indirect addressing mode.<br />

Mo Address register indirect with <strong>of</strong>fset addressing mode.<br />

I Any <strong>of</strong> the immediate addressing modes, length equal to operation length or a following number.<br />

Q Quick immediate, either 3 bits (range 1-8) or 8 bits (range - 128 to + 127).<br />

o Offset (displacement) following the instruction, either 8 or 16 bits.<br />

RL Register list coded as a 16-bit word following the instruction. Each bit corresponds to a register<br />

and a 1 bit means process the register.<br />

xx Specialized source or destination as listed in instruction description.<br />

a single 16-bit instruction. Along with arithmetic, the usual And, Or, and<br />

Exclusive-Or operations are available with either a data register or memory as<br />

the destination.<br />

The 68000 maintains five condition code bits that are set after most<br />

instructions. Four <strong>of</strong> these are Negative, Zero, Carry, and Overflow, which<br />

are used by the conditional branch instructions. The fifth is called Extend

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!