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 指令相同。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP