在本节中,我们将看到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指令相同。