Introduction
Introduction to M68HC11

Instruction Set

Interrupt Vectors


Interrupt Vectors
M68HC11 Interrupt Vectors

Clock Monitor............. FFFC,FFFD

COP WatchDog.............. FFFA,FFFB

SWI....................... FFF6,FFF7

Timer (IC1F).............. FFEE,FFEF

Timer (IC2F).............. FFEC,FFED

Timer (IC3F).............. FFEA,FFEB

Timer (OC1F).............. FFE8,FFE9

Timer (OC2F).............. FFE6,FFE7

Timer (OC3F).............. FFE4,FFE5

Timer (OC4F).............. FFE2,FFE3

Timer (OC5F).............. FFE0,FFE1

Timer (TOF)............... FFDE,FFDD

Pulse Accumulator (PAOVF). FFDC,FFDD

Pulse Accumulator (PAII).. FFDA,FFDB


Instruction Set

aba

abx

aby

adca

adcb

adda

addb

addd

anda

andb

asl

asla

aslb

asld

asr

asra

asrb

bcc

bclr

bcs

beq

bge

bgt

bhi

bhs

bita

bitb

ble

blo

bls

blt

bmi

bne

bpl

bra

brclr

brn

brset

bset

bsr

bvc

bvs

cba

clc

cli

clr

clra

clrb

clv

cmpa

cmpb

com

coma

comb

cpd

cpx

cpy

daa

dec

deca

decb

des

dex

dey

eora

eorb

fdiv

idiv

inc

inca

incb

ins

inx

iny

jmp

jsr

ldaa

ldab

ldd

lds

ldx

ldy

lsl

lsla

lslb

lsld

lsr

lsra

lsrb

lsrd

mul

neg

nega

negb

nop

oraa

orab

psha

pshb

pshx

pshy

pula

pulb

pulx

puly

rol

rola

rolb

ror

rora

rorb

rti

rts

sba

sbca

sbcb

sec

sei

sev

staa

stab

std

stop

sts

stx

sty

suba

subb

subd

swi

tab

tap

tba

test

tpa

tst

tsta

tstb

tsx

tsy

txs

tys

wai

xgdx

xgdy


aba

Add Accumulators.  A + B -> A.  (INH)


abx

Add B to X.  (INH)


aby

Add B to Y.  (INH)


adca

Add with carry to A. (IMM,DIR,EXT,INDX,INDY)


adcb

adca

Add with carry to B.  (IMM,DIR,EXT,INDX,INDY)


adda

Add memory to A. A + M -> A.  (IMM,DIR,EXT,INDX,INDY)


addb

Add memory to B. B + M -> B.  (IMM,DIR,EXT,INDX,INDY)


addd

Add 16 bit to D.  D + (M : M + 1) -> D.  (IMM,DIR,EXT,INDX,INDY)


anda

AND A with memory.  A & M -> A (IMM,DIR,EXT,INDX,INDY)


andb

AND B with memory.  B & M -> B (IMM,DIR,EXT,INDX,INDY)


asl

Arithmetic shift left.  (EXT,INDX,INDY)


asla

Arithmetic shift left A.  (INH)


aslb

Arithmetic shift left B.  (INH)


asld

Arithmetic shift left D.  (INH)


asr

Arithmetic shift right.  (EXT,INDX,INDY)


asra

Arithmetic shift right A.  (INH)


asrb

Arithmetic shift right B.  (INH)


bcc

Branch if carry clear.  (REL)


bclr

Clear bits.  M : (mm) -> M (DIR,INDX,INDY)


bcs

Branch if carry set.  (REL)


beq

Branch if equal zero.  (REL)


bge

Branch if greater equal zero.  (REL)


bgt

Branch if greater than zero.  (REL)


bhi

Branch if higher.  (REL)


bhs

Branch if higher or same.  (REL)


bita

Bit test A with memory. (IMM,DIR,EXT,INDX,INDY)


bitb

Bit test B with memory. (IMM,DIR,EXT,INDX,INDY)


ble

Branch if less than or equal to zero. (REL)


blo

Branch if lower. (REL)


bls

Branch if less or same. (REL)


blt

Branch if less than zero. (REL)


bmi

Branch if minus. (REL)


bne

Branch if not equal zero. (REL)


bpl

Branch if plus. (REL)


bra

Branch always. (REL)


brclr

Branch if bits clear. (DIR,INDX,INDY). (dd mm rr)

(ff mm rr)


brn

Branch never. (REL)


brset

Branch if bits set. (DIR,INDX,INDY) (dd mm rr)

(ff mm rr)


bset

Set bits.         (DIR,INDX,INDY)   (dd mm)

(ff mm)


bsr

Branch to subroutine.  (REL)


bvc

Branch if overflow clear.  (REL)


bvs

Branch if overflow set.  (REL)


cba

Compare A to B.  (INH)


clc

Clear carry bit.  (INH)


cli

Clear interrupt mask.  (INH)


clr

Clear memory bytes.  (EXT,INDX,INDY)


clra

Clear accumulator A.  (INH)


clrb

Clear accumulator B.  (INH)


clv

Clear overflow flag.  (INH)


cmpa

Compare A to memory.  (IMM,DIR,EXT,INDX,INDY)


cmpb

Compare B to memory.  (IMM,DIR,EXT,INDX,INDY)


com

Ones complement memory byte.  (EXT,INDX,INDY)


coma

Ones complement A.  (INH)


comb

Ones complement B.  (INH)


cpd

compare D to memory 16-bit.  (IMM,DIR,EXT,INDX,INDY)


cpx

compare X to memory 16-bit.  (IMM,DIR,EXT,INDX,INDY)


cpy

compare Y to memory 16-bit.  (IMM,DIR,EXT,INDX,INDY)


daa

Decimal adjust A.  (INH)


dec

Decrement memory byte.  (EXT,INDX,INDY)


deca

Decrement accumulator A.  (INH)


decb

Decrement accumulator B.  (INH)


des

Decrement stack pointer.  (INH)


dex

Decrement index register X.  (INH)


dey

Decrement index register Y.  (INH)


eora

Exclusive OR A with memory.  (IMM,DIR,EXT,INDX,INDY)


eorb

Exclusive OR B with memory.  (IMM,DIR,EXT,INDX,INDY)


fdiv

Fractional divide 16-bit by 16-bit .  (INH)


idiv

Integer divide 16-bit by 16-bit .  (INH)


inc

Increment memory byte .  (EXT,INDX,INDY)


inca

Increment accumulator A.  (INH)


incb

Increment accumulator B.  (INH)


ins

Increment stack pointer.  (INH)


inx

Increment index register X.  (INH)


iny

Increment index register Y.  (INH)


jmp

Jump.  (EXT,INDX,INDY)


jsr

Jump to subroutine.  (DIR,EXT,INDX,INDY)


ldaa

Load accumulator A.  (IMM,DIR,EXT,INDX,INDY)


ldab

Load accumulator B.  (IMM,DIR,EXT,INDX,INDY)


ldd

Load double accumulator D.

CC IMM   ii

DC DIR   dd

FC EXT   hh ll

EC INDX  ff

18 EC INDY  ff


lds

ldjs

Load stack pointer.  (IMM,DIR,EXT,INDX,INDY)


ldx

Load index register X.  (IMM,DIR,EXT,INDX,INDY)


ldy

Load index register Y.  (IMM,DIR,EXT,INDX,INDY)


lsl

Logical shift left.  (EXT,INDX,INDY)


lsla

Logical shift left A.  (INH)


lslb

Logical shift left B.  (INH)


lsld

Logical shift left D.  (INH)


lsr

Logical shift right.  (EXT,INDX,INDY)


lsra

Logical shift right A.  (INH)


lsrb

Logical shift right B.  (INH)


lsrd

Logical shift right D.  (INH)


mul

Multiply A * B -> D (INH)


neg

Two's complement memory byte. (EXT,INDX,INDY)


nega

Two's complement A. (INH)


negb

Two's complement B. (INH)


nop

No operation. (INH)


oraa

Inclusive OR accumulator A. (IMM,DIR,EXT,INDX,INDY)


orab

Inclusive OR accumulator B. (IMM,DIR,EXT,INDX,INDY)


psha

Push A onto stack. (INH)


pshb

Push B onto stack. (INH)


pshx

Push X onto stack. (INH)


pshy

Push Y onto stack. (INH)


pula

Pull A from stack. (INH)


pulb

Pull B from stack. (INH)


pulx

Pull X from stack. (Hi byte first). (INH)


puly

Pull Y from stack. (Hi byte first). (INH)


rol

Rotate left. (EXT,INDX,INDY)


rola

Rotate left A. (INH)


rolb

Rotate left B. (INH)


ror

Rotate right. (EXT,INDX,INDY)


rora

Rotate right A. (INH)


rorb

Rotate right B. (INH)


rti

Return from interrupt. (INH)


rts

Return from subroutine. (INH)


sba

Subtract B from A -> A. (INH)


sbca

Subtract with carry from A -> A. (IMM,DIR,EXT,INDX,INDY)


sbcb

Subtract with carry from B -> B. (IMM,DIR,EXT,INDX,INDY)


sec

Set carry. (INH)


sei

Set interrupt mask. (INH)


sev

Set overflow flag. (INH)


staa

Store accumulator A -> M. (DIR,EXT,INDX,INDY)


stab

Store accumulator B -> M. (DIR,EXT,INDX,INDY)


std

Store accumulator D -> M  (A -> M : B -> M + 1).

DD DIR  dd

FD EXT  hh ll

ED INDX ff

18 ED INDY ff'


stop

Stop internal clocks. (DIR,EXT,INDX,INDY)


sts

Store stack pointer SP -> M : M + 1. (DIR,EXT,INDX,INDY)


stx

Store index register X -> M : M +  1. (DIR,EXT,INDX,INDY)


sty

Store index register Y -> M : M +  1. (DIR,EXT,INDX,INDY)


suba

Subtract memory from A.  A - M -> A. (IMM,DIR,EXT,INDX,INDY)


subb

Subtract memory from B.  B - M -> B. (IMM,DIR,EXT,INDX,INDY)


subd

Subtract memory from D.  D - M : M + 1 -> D. (IMM,DIR,EXT,INDX,INDY)


swi

Software interrupt. (INH)


tab

Transfer A to B. (INH)


tap

Transfer A to CC (Control Register). (INH)


tba

Transfer B to A. (INH)


test

TEST (Only in test modes). (INH)


tpa

Transfer CC (Control Register) to A. (INH)


tst

Test for zero or minus. (EXT,INDX,INDY)


tsta

Test A for zero or minus. (INH)


tstb

Test B for zero or minus. (INH)


tsx

Transfer stack pointer to X. (INH)


tsy

Transfer stack pointer to Y. (INH)


txs

Transfer X to stack pointer. (INH)


tys

Transfer Y to stack pointer. (INH)


wai

Wait for interrupt.  Stack the registers and wait. (INH)


xgdx

Exchange D with X. (INH)


xgdy

Exchange D with Y. (INH)