Naar inhoud springen

Instructieset van de M6800

Uit Wikipedia, de vrije encyclopedie

De M6800 was in de jaren 70 een 8-bits microprocessor van Motorola, die geen groot commercieel succes werd. De Intel 8080 en vooral de Z80 en de MOS 6502 werden veel meer toegepast. De M6800 heeft maar twee registers voor algemeen gebruik, accumulator A en accumulator B. Verder zijn er een 16-bits indexregister IX, een stackpointer SP en een programmateller PC en is er het register met conditiecodes. De M6800 was door Motorola ontwikkeld en werd door Motorola verkocht.

linker
vier bits →
00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0
rechter
vier bits↓
relatieve
sprong
acca accb ind ext imm dir ind ext imm dir ind ext
00 SBA
A=A-B
BRA
branch
TSX
IX=SP+1
NEG
M=-M
SUB
A=A-M
SUB
B=B-M
01 NOP CBA
A:B
INS
SP=SP+1
CMP
A:M
CMP
B:M
02 BHI
if >
PUL
pop A
SBC
A=A-M-C
SBC
B=B-M-C
03 BLS
if <=
PUL
pop B
COM
M=~M
04 BCC
if C=0
DES
SP=SP-1
LSR
shift right
AND
A=A and M
AND
B=B and M
05 BCS
if C=1
TXS
SP=IX-1
BIT
A:M
BIT
B:M
06 TAP
CC=A
TAB
B=A
BNE
if <>
PSH
push A
ROR
rotate right
LDA
A=M
LDA
B=M
07 TPA
A=CC
TBA
A=B
BEQ
if Z=1
PSH
push b
ASR
shift right
STA
M=A
STA
M=B
08 INX
IX=IX+1
BVC
if V=0
ASL
shift left
EOR
A=A xor M
EOR
B=B xor M
09 DEX
IX=IX-1
DAA BVS
if V=1
RTS
return
ROL
rotate left
ADC
A=A+M+c
ADC
B=B+M+c,
0A CLV
V=0
BPL
if >=
DEC
M=M-1
ORA
A=A or M
ORA
B=B or M
0B SEV
V=1
ABA
a=a+b
BMI
if <
RTI
ret from int
ADD
A=A+M
ADD
B=B+M
0C CLC
C=0
BGE
if >=
INC
M=M+1
CPX
IX:M
0D SEC
C=1
BLT
if <
TST
M:0
BSR
call
JSR
call
0E CLI
I=0
BGT
if >
WAIT JMP LDS
SP=M
LDX
IX=M
0F SEI
I=1
BLE
if <=
SWI
interrupt
CLR
M=0
STS
M=SP
STX
M=IX