指令集6800

在本节中,我们将看到Motorola M6800微处理器的不同类型的指令。有72种不同类型的指令和197种不同的操作码。因此有511字节指令,103个2字节指令和43个3字节指令。

我们知道英特尔8085具有246个操作码,尽管6800比8085更强大。Z-80具有700条指令,而M6800具有一些更高级的分支指令。

不同的指令组是这样的-

  • 数据传输组

  • 算术组

  • 逻辑组

  • 分公司

  • 杂项说明

数据传输组

在该组中,有14条指令。我们可以找到这14条指令的38个操作码。这些说明如下。

助记符
操作码数
LDA A / B,d8 / a16 / a8 / IX + a8
8
STA A / B,a16 / a8 / IX + a8
6
LDS / LDX,d16 / a16 / a8 / IX + a8
8
STS / STX a16 / a8 / IX + a8
6
PSH / PUL A / B
4
TAB / TBA / TSX / TXS / TAP / TPA
6


算术组

在该组中,有15条指令。我们可以为这15条指令找到55个操作码。这些说明如下。

助记符
操作码数
ABA / SBA
2
SBC / SUB / ADC / ADD A / B d8 / a8 / a16 / IX + a8
32
INS / INX / DES / DEX
4
NEG / CLR / INC / DEC A / B / a16 / IX + a8
16
DAA
1

逻辑组

在该组中,有14条指令。我们可以找到这14条指令的73个操作码。这些说明如下。

助记符
操作码数
BIT / CMP / EOR / ORA / AND A / B,d8 / a8 / a16 / IX + a8
40
ROR / ROL / LSR / ASR / ASL / COM / TSTA / B / a16 / IX + a8
28
CPX d16 / a8 / a16 / IX + a8
4
CBA
1


这里的旋转指令(ROR和ROL)仅适用于8位数据。像8085一样,没有通过携带的旋转指令。

ASR和ASL是算术移位运算,LSR是逻辑右移指令。

分公司

在该组中,有21条指令。我们可以找到这21条指令的23个操作码。在Zilog Z-80中,我们已经看到它们是除V以外的所有片段的跳转指令。此处还显示了V标志的指令。

这些与V相关的指令是BVS(设置V标志时分支)和BVC(复位V标志时分支)

在6800中,条件分支指令可以检查多个标志。它有助于比较两个有符号/无符号数字。此处,较高和较低的关键字用于无符号数字,而较高和较低的关键字用于有符号数字。因此,对于这些关键字,有类似BHI(如果较高则为分支),BLS(如果较低或相同则为分支)的指令。BGT(大于则为分支)和BGE(大于等于则为分支),BLT(小于等于则为分支)和BLE(小于等于则为分支)

这些说明如下。

助记符
操作码数
BCC / BCS / BEQ / BNE / BMI / BPL / BVC / BVSr8
8
BHI / BLS r8
2
BGT / BGE / BLT / BLE r8
4
BRA / BSR r8
2
JMP / JSR a16 / IX + a8
4
RTS / RTI
2
SWI
1


杂项组

现在,我们将看到一些特殊说明,这些特殊说明未归类为某些特殊组。有八种八种不同类型的操作码。这些指令类似于WAI(等待中断),NOP等。

这些说明如下。

助记符
操作码数
威力
1
NOP
1
CLC / SEC / CLI / SEI / CLV / SEV
6

WAI指令在功能上与8085的HLT指令相同。