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+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.