De M6800 van Motorola was in de jaren 70 waarschijnlijk de minst populaire 8-bits microprocessor. De Intel 8080 (en vooral de Z80) en de MOS 6502 werden veel meer toegepast.
De M6800 heeft slechts 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). Ook het register met conditiecodes is aanwezig.
Meer informatie linker vier bits:, A0 ...
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 |
Sluiten