超級任天堂程式設計/65c816參考
外觀
| 位 | 暫存器 | 描述 |
| 8 或 16 | A | 累加器。這是數學暫存器。它儲存兩個運算元之一或大多數算術和邏輯運算的結果。 |
| 8 或 16 | X, Y | 索引暫存器。這些可以用來引用記憶體,將資料傳遞到記憶體,或者作為迴圈的計數器。 |
| 16 | S | 堆疊指標,指向堆疊上下一個可用(未使用的)位置。 |
| 8 | DBR | 資料庫暫存器,儲存記憶體傳輸的預設庫。 |
| 16 | D | 直接頁面暫存器,用於直接頁面定址模式。 |
| 8 | PBR | 程式庫,儲存所有指令獲取的庫地址。 |
| 8 | P | 處理器狀態,儲存各種重要的標誌,見下文。 |
| 16 | PC | 程式計數器 |
| 助記符 | 值 | 二進位制值 | 描述 | |
| N | #$80 | 10000000 | 負數 | 用於分支指令的條件程式碼。 |
| V | #$40 | 01000000 | 溢位 | |
| Z | #$02 | 00000010 | 零 | |
| C | #$01 | 00000001 | 進位 | |
| D | #$08 | 00001000 | 十進位制 | |
| I | #$04 | 00000100 | IRQ 停用 | |
| X | #$10 | 00010000 | 索引暫存器大小(僅限本機模式) (0 = 16 位,1 = 8 位) | |
| M | #$20 | 00100000 | 累加器暫存器大小(僅限本機模式) (0 = 16 位,1 = 8 位) | |
| E | 不在 P 中 | 6502 模擬模式 | ||
| B | #$10 | 00010000 | 斷點(僅限模擬模式) | |
| 指令 | 描述 | 引數 | 設定標誌 | |
| ADC | 將 A 與某值和進位位相加。結果放入 A 中。 | 立即值或地址 | n,v,z,c | 算術指令 |
| SBC | 從某值和進位位中減去。 | n,v,z,c | ||
| AND | 將 A 與記憶體進行 AND 運算,並將結果儲存在 A 中。 | 立即值或地址 | n,z | 邏輯指令 |
| EOR | 異或 | n,z | ||
| ORA | 將 A 與記憶體進行 OR 運算,並將結果儲存在 A 中。 | 立即值或地址 | n,z | |
| TSB | 測試並設定位 | z | ||
| TRB | 測試並復位位 | z | ||
| ASL | 算術左移 | A 或地址 | n,z,c | 移位指令 |
| LSR | 邏輯右移 | A 或地址 | n,z,c | |
| ROL | 左旋 | A 或地址 | n,z,c | |
| ROR | 右旋 | A 或地址 | n,z,c | |
| BIT | 測試位,設定 | 立即值或地址 | n,v,z(僅限立即模式下的 z) | 測試指令 |
| CMP | 將累加器與記憶體進行比較 | n,z,c | ||
| CPX | 將暫存器 X 與記憶體進行比較 | n,z,c | ||
| CPY | 將暫存器 Y 與記憶體進行比較 | n,z,c | ||
| DEA | 遞減累加器 | n,z | ||
| DEC | 遞減,參見 INC | n,z | ||
| DEX | 遞減 X 暫存器 | n,z | ||
| DEY | 遞減 Y 暫存器 | n,z | ||
| INA | 遞增累加器 | n,z | ||
| INC | 遞增,參見 DEC | n,z | ||
| INX | 遞增 X 暫存器 | n,z | ||
| INY | 遞增 Y 暫存器 | n,z | ||
| NOP | 無操作 | 無 | ||
| XBA | 交換累加器的位元組 | n,z | ||
| 指令 | 描述 |
| LDA | 從記憶體載入累加器 |
| LDX | 從記憶體載入暫存器 X |
| LDY | 從記憶體載入暫存器 Y |
| STA | 將累加器儲存到記憶體中 |
| STX | 將暫存器 X 儲存到記憶體中 |
| STY | 將暫存器 Y 儲存到記憶體中 |
| STZ | 將零儲存到記憶體中 |
| 指令 | 描述 | 受影響的標誌 |
| TAX | 將累加器傳輸到索引暫存器 X | n,z |
| TAY | 將累加器傳輸到索引暫存器 Y | n,z |
| TCD | 將 16 位累加器傳輸到直接頁面暫存器 | n,z |
| TCS | 將 16 位累加器傳輸到堆疊指標 | 無 |
| TDC | 將直接頁面暫存器傳輸到 16 位累加器 | n,z |
| TSC | 將堆疊指標傳輸到 16 位累加器 | n,z |
| TSX | 將堆疊指標傳輸到索引暫存器 X | n,z |
| TXA | 將索引暫存器 X 傳輸到累加器 | n,z |
| TXS | 將索引暫存器 X 傳輸到堆疊指標 | 無 |
| TXY | 將索引暫存器 X 傳輸到索引暫存器 Y | n,z |
| TYA | 將索引暫存器 Y 傳輸到累加器 | n,z |
| TYX | 將索引暫存器 Y 傳輸到索引暫存器 X | n,z |
| 指令 | 描述 |
| BCC | 如果進位標誌為清除 (C=0) 則分支 |
| BCS | 如果進位標誌為設定 (C=1) 則分支 |
| BNE | 如果不等於 (Z=0) 則分支 |
| BEQ | 如果等於 (Z=1) 則分支 |
| BPL | 如果為正 (N=0) 則分支 |
| BMI | 如果為負 (N=1) 則分支 |
| BVC | 如果溢位標誌為清除 (V=0) 則分支 |
| BVS | 如果溢位標誌為設定 (V=1) 則分支 |
| BRA | 始終分支(無條件) |
| BRL | 始終長分支(無條件) |
| 指令 | 描述 |
| JMP | 跳轉 |
| JML | 長跳轉 |
| JSR | 跳轉並儲存返回地址 |
| JSL | 長跳轉並儲存返回地址 |
| RTS | 從子程式返回 |
| RTL | 從長子程式返回 |
| 指令 | 描述 |
| BRK | 生成軟體中斷 |
| COP | 生成協處理器中斷 |
| RTI | 從中斷返回 |
| STP | 停止處理器直到重置 |
| WAI | 等待硬體中斷 |
| 指令 | 描述 |
| CLC | 清除進位標誌 |
| CLD | 清除十進位制標誌(二進位制算術) |
| CLI | 啟用中斷請求 |
| CLV | 清除溢位標誌 |
| REP | 復位狀態位(例如,REP #%00100000 清除 M 標誌) |
| SEC | 設定進位標誌 |
| SED | 設定十進位制標誌(十進位制算術) |
| SEP | 設定狀態位(例如,SEP #%00010000 設定 X 標誌) |
| SEI | 停用中斷請求 |
| XCE | 將進位標誌與模擬標誌交換 |
| 指令 | 描述 | |
| PHA | 壓入累加器 | 壓入指令 |
| PHX | 壓入索引暫存器 X | |
| PHY | 壓入索引暫存器 Y | |
| PHD | 壓入直接頁暫存器 | |
| PHB | 壓入資料庫暫存器 | |
| PHK | 壓入程式庫暫存器 | |
| PHP | 壓入處理器狀態 | |
| PEA | 壓入有效地址 | |
| PEI | 壓入有效間接地址 | |
| PER | 壓入有效相對地址 | |
| PLA | 取出累加器 | 取出指令 |
| PLX | 取出索引暫存器 X | |
| PLY | 取出索引暫存器 Y | |
| PLP | 取出處理器狀態 | |
| PLD | 取出直接頁暫存器 | |
| PLB | 取出資料庫暫存器 | |
| 模式 | 示例 |
| 隱式 | PHB |
| 立即[記憶體標誌] | AND #1 或 2 位元組 |
| 立即[索引標誌] | LDX #1 或 2 位元組 |
| 立即[8 位] | SEP #位元組 |
| 相對 | BEQ 位元組 (有符號) |
| 相對長 | BRL 2 位元組 (有符號) |
| 直接 | AND 位元組 |
| 直接索引(帶 X) | AND 位元組, x |
| 直接索引(帶 Y) | AND 位元組, y |
| 直接間接 | AND (位元組) |
| 直接索引間接 | AND (位元組, x) |
| 直接間接索引 | AND (位元組), y |
| 直接間接長 | AND [位元組] |
| 直接間接索引長 | AND [位元組], y |
| 絕對 | AND 2 位元組 |
| 絕對索引(帶 X) | AND 2 位元組, x |
| 絕對索引(帶 Y) | AND 2 位元組, y |
| 絕對長 | AND 3 位元組 |
| 絕對索引長 | AND 3 位元組, x |
| 堆疊相對 | AND 位元組, s |
| 堆疊相對間接索引 | AND (位元組, s), y |
| 絕對間接 | JMP (2 位元組) |
| 絕對間接長 | JML [2 位元組] |
| 絕對索引間接 | JMP/JSR (2 位元組, x) |
| 隱式累加器 | INC |
| 塊移動 | MVN/MVP 位元組, 位元組 |