6800 指令集


在本节中,我们将了解 Motorola M6800 微处理器的不同类型的指令。共有 72 种不同类型的指令和 197 个不同的操作码。因此,有 51 条 1 字节指令、103 条 2 字节指令和 43 条 3 字节指令。

众所周知,Intel 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 标志设置为 1 时分支)和 BVC(当 V 标志复位时分支)

在 6800 中,条件分支指令可以检查多个标志。它有助于比较两个有符号/无符号数。这里 higher 和 lower 关键字用于无符号数,greater 和 fewer 关键字用于有符号数。因此,对于这些关键字,存在诸如 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


杂项组

现在我们将了解一些未分类到特殊组中的特殊指令。有 8 个不同类型的 8 个操作码。这些指令如 WAI(等待中断)、NOP 等。

这些指令如下所示。

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

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

更新于: 2020 年 6 月 27 日

1K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告