山本ワールド
6809/6309 MPU
MC6809
特徴
1979年にMotorola(モトローラ)社が発表した某雑誌では究極の8bit MPU(MotorolaではCPUをMPU(Micro-processing unit)と言う)前年の1978年にIntelの16bit CPUである8086が発表されており遅れて登場した感がいがめない。
前に登場した同社の6800とはバイナリ及びソースコードレベルで互換性はないが、がんばれば移植も可能。
8bit MPUにしては豊富なアドレッシングモードを備える。
8bitデーターバス/16bitアドレスバス
Z80などに比べれば低クロック(68B09 2MHz)だが1クロックでメモリアクセスを行う。
6809 1MHz
68A09 1.5MHz
68B09 2MHz
9000トランジスター
10種類のアドレッシングモード(8bit最強)
8bitのアドレスで高速にアクセスできるダイレクトページをサポート
特にインダイレクトを含むモードはメモリ上に置かれたポインタのアドレスを用いてアクセスする。
いわゆるポインタへのポインタである。このようなアドレッシングは68000でも備えておらず68020で登場している。
(メモリのアドレスを示してそのアドレスのデータを取り出してそれをアドレスとしてデータをアクセスする。)
Z80はいくつ? ( n nn reg8 reg16 (nn) (reg16) (IX or IY+d) PC+e,HL++,HL--,((HL++)→(DE++)),((HL--)→(DE--)))意外と多いかもしれません。
8bit*8bitの符号無し乗算命令をサポート
80系やx86系と異なるビック・エンディアン
一部16bit演算をサポート
6800と類似の同期バスが採用されている。
40ピンDIP
割込み
外部要因が、ノンマスカブル割込みであるNMIとマスカブル割込みであるFIRQとIRQの計3本です。FIRQではPCとCC以外はスタックに保存されません。IRQでは全レジスタがスタックに保存されます。CCのEフラグによって割込み復帰時に復帰するレジスタが決まります。
ソフトウェア割込みとしてSWI1,SWI2,SWI3があります。
割込みが発生すると固定されたアドレス(ベクター)に格納されているジャンプ先アドレスを読み込んで割込み処理ルーチンへ移動します。
レジスタ
6809
6800に対して16bitのレジスタが3本追加されています。アキュムレータはA,Bの2本で合わせて1本のDレジスタとして使用できます。
XとYはインデックスレジスタで16bitアドレスを示します。
U,Sはスタックポインタです。
CCRはフラグを集めたレジスタです。
DPはダイレクトモード時に上位8bitのアドレスを示すレジスタです。
| Y Index Regsiter | |
| X Index Regsiter | |
| U User Stack Pointer | |
| S Hardware Stack Pointer | |
| PC | |
| A | B |
| DP | |
| CCR | |
6800
Acc A、ACC Bの2本のアキュムレータで演算命令の中心となります。IXはインデックスレジスタで16bitアドレスを示します。
CCRはフラグを集めたレジスタです。
| Acc A | |
| ACC B | |
| IX | |
| PC | |
| S | |
| CCR | |
CC
6809ではフラグを集めたレジスタをCCR(Condition Code Register)と呼んでいます。| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| E | F | H | I | N | Z | V | C |
E ENTIREフラグ
1:全レジスタを保存0:PC,CCを保存
F FIRQ割り込み禁止フラグ
1 割り込み禁止0 割り込み許可
H ハーフキャリー
BCD演算の1桁目が桁あふれかどうかを示す。8bitのADCA,ADDAの後にDAAを使用すると1桁に桁あふれが生じているときに1,2桁目を補正できる。
I IRQ割り込み禁止フラグ
1 割り込み禁止0 割り込み許可
N ネガティブフラグ
1 演算結果の最上位ビットが1 0 上記以外Z ゼロフラグ
1 演算結果、またはロード時の値が00 上記以外
V オーバーフローフラグ
1 演算結果が符号ありの最大範囲(-128 - 127)を超えた0 上記以外
1 1固定
C キャリーフラグ
インクリメントとデクリメントではCフラグは変化しません。1 加算命令実行時:演算結果が255を超えた(キャリーあり)
減算命令実行時:演算結果が0を下回る(ボローあり)
0 上記以外
加算命令実行時:演算結果が255を超えていない(キャリーなし)
減算命令実行時:演算結果が0を下回らない(ボローなし)
メモリー
| $FFFE~$FFFF | RESET |
| $FFFC~$FFFD | NMI |
| $FFFA~$FFFB | SWI |
| $FFF8~$FFF9 | IRQ |
| $FFF6~$FFF7 | FIRQ |
| $FFF4~$FFF5 | SWI2 |
| $FFF2~$FFF3 | SWI3 |
| $FFF0~$FFF1 | Reserved |
アドレッシングモード
13種類のアドレッシングモードがあります。Indirectではポインターへのポインターが使える。
インヘレント(Inherent (Includes Accumlator))
イミディエート(Immediate)
nエクステンド(Extended)
n 16bitアドレスを直接指定ダイレクト(Direct)
DPレジスタを上位として下位を定数で指定インデックス
インデックスを指定すると命令にポストバイト(Indexed and Indirect Addressing Modes and Post byte Information)が必要となります。オフセットは2の補数形式の符号付きです。
レジスタ(Register)
インデックス(Indexed)
R(X,Y,U,S)に対して以下の修飾ができます。Zero-Offset
,RConstant Offset
5bit
n,R8bit
n,R16bit
n,RAccumulator Offset
AccA
A,RAccB
B,RD
D,RAuto Increment/Decrement
R++
,R+R++
,R++--R
,-R--R
,--Rプログラムカウンタ間接(Program counter relative)
8bit
[n,PCR]16bit
[n,PCR]インデックス間接(Indexed indirect)
指定されたアドレスで示されるメモリの2byteの値をアドレスとして使用する。2byte単位なのでインクリメントとデクリメントは2の増減しか存在しない。
R(X,Y,U,S)に対して以下の修飾ができます。
オフセットは2の補数形式の符号付きです。
Zero-Offset
[,R]Constant Offset
8bit
[n,R]16bit
[n,R]Accumulator Offset
AccA
[A,R]AccB
[B,R]D
[D,R]Auto Increment/Decrement
R++
[,R++]--R
[,--R]プログラムカウンタ間接(Program counter relative)
8bit
[n,PCR]16bit
[n,PCR]エクステンド間接(Extended indirect)
[n]命令
演算命令は基本的にA,B,Dレジスタを基本としています。X,Y,U,Sには比較命令だけですが、実行アドレスを得る命令(LEA)を使うと加算結果を取得することができます。
またアドレス指定の際に自動的にインクリメント及びデクリメントが使えます。
演算命令は8bitが中心ですがADDD/SUBD/CMPDについては16bitも使用できます。
符号なしの乗算命令8bit * 8bitがあります。
基本的にはアセンブラでは2つのオペランドを並べて記述することはありません。2つのオペランドを含む命令はニーモニックに1つのオペランドが含まれています。
10進補正は加算のAレジスターのみ適用できます。
アドレス指定にX,Y,U,Sが使用できます。
Yについてはプリフィクスを使用していますのでXに対して1byte増えます。
U,Sについても1部プリフィクスを使用していますのでXに対して1byte増えます。
16bitの相対ブランチ命令はプリフィクスを使用しています。
pushh/pull命令はスタックのU,Sそれぞれに対して使用でき、保存・復帰するレジスタの組み合わせをポストバイト(PSH/PUL Post Byte)で指定できます。
レジスタ同士の交換命令であるEXG、レジスタ同士の転送命令であるTFRは自由にレジスタの組み合わせを指定できます。(Inter-Register Post Byte)
条件ブランチ
条件ブランチでは複数のフラグをチェックできますので複雑な条件が指定できます。| 条件 | x86 | Z80 | 共通 | other | ||||||||||
| x86 | flags | Z80 | flags | H8/3048 | 6800 | 6809 | 6502 | 68000 | PIC18 | flags | ||||
| オーバーフローがある | JO | OF=1 | JP PE | V=1 | BVS | BVS | BVS | BVS | BVS | BOV | V=1 | overflow set | ||
| オーバーフローがない | JNO | OF=0 | JP PO | V=0 | BVC | BVC | BVC | BVC | BVC | BNOV | V=0 | overflow clear | ||
| キャリーがある | JC | CF=1 | JP C | C=1 | BCS | BCS | BCS | BCS | BCS | BC | C=1 | carry set | ||
| unsigned | 上でなく等しくない | < | JNAE | CF=1 | Neither above nor equa | |||||||||
| unsigned | 下 | < | JB | CF=1 | BLO | BLO | C=1 | Bellow/Lower | ||||||
| unsigned | 下でない | JNC | CF=0 | BHS | BHS | C=0 | not carry Higher/Same | |||||||
| キャリーがない | JNC | CF=0 | JP NC | C=0 | BCC | BCC | BCC | BCC | BCC | BNC | C=0 | not carry carry clear | ||
| unsigned | 上か等しい | JAE | CF=0 | Above or equal | ||||||||||
| 等しい | = | JE | ZF=1 | BEQ | BEQ | BEQ | BEQ | BEQ | Z=1 | equal | ||||
| ゼロの場合 | JZ | ZF=1 | JP Z | Z=1 | BZ | Z=1 | zero | |||||||
| 等しくない | ≠ | JNE | ZF=0 | BNE | BNE | BNE | BNE | BNE | Z=0 | not equal | ||||
| ゼロでない | JNZ | ZF=0 | JP NZ | Z=0 | BNZ | not zero | ||||||||
| unsigned | 上でない | < | JNAE | CF ∨ ZF=1 | BLS | BLS | BLS | BLS | C ∨ Z=1 | lower than or same | ||||
| unsigned | 下か等しい | < | JBE | CF ∨ ZF=1 | Bellow or equal | |||||||||
| unsigned | 下でなく等しくない | > | JNBE | CF ∨ ZF=0 | Neither bellow nor equal | |||||||||
| unsigned | 上 | > | JA | CF ∨ ZF=0 | BHI | BHI | BHI | BHI | C ∨ Z=0 | Above/higher than | ||||
| 符号がある | <0 | JS | SF=1 | JP M | S=1 | BMI | BMI | BMI | BMI | BMI | BN | N=1 | minus | |
| 符号がない | ≧0 | JNS | SF=0 | JP P | S=0 | BPL | BPL | BPL | BPL | BPL | BNN | N=0 | plus | |
| パリティがある | JP | PF=1 | Parity | |||||||||||
| パリティが偶数 | JPE | PF=1 | JP PE | P=1 | parity even | |||||||||
| パリティがない | JNP | PF=0 | no parity | |||||||||||
| パリティが奇数 | JPO | PF=0 | JP PO | P=0 | parity odd | |||||||||
| signed | 小さい | < | JL | SF ⊕ OF=1 | BLT | BLT | BLT | BLT | N ⊕ V=1 | less than | ||||
| signed | 大きくなく等しくない | < | JNGE | SF ⊕ OF=1 | Neither greater nor equa | |||||||||
| signed | 大きいか等しい | ≧ | JGE | SF ⊕ OF=0 | BGE | BGE | BGE | BGE | N ⊕ V=0 | greater than or equal | ||||
| signed | 小さくない | ≧ | JNL | SF ⊕ OF=0 | Not less | |||||||||
| signed | 小さいか等しい | ≦ | JLE | ZF ∨ (SF ⊕ OF)=1 | BLE | BLE | BLE | BLE | Z ∨ (N ⊕ V)=1 | less than or equal | ||||
| signed | 大きくない | ≦ | JNG | ZF ∨ (SF ⊕ OF)=1 | Not greater | |||||||||
| signed | 大きい | > | JG | ZF ∨ (SF ⊕ OF)=0 | BGT | BGT | BGT | BGT | Z ∨ (N ⊕ V)=0 | greater than | ||||
| signed | 小さくなく等しくない | > | JNLE | ZF ∨(SF ⊕ OF)=0 | Not less nor equal | |||||||||
∨ Boolean OR
⊕ Boolean exclusive OR
¬ Boolean Not
基本的には各CPU似たような命令となっておりフラグの条件も同一です。
6502とPIC18では減算後や比較命令後のCフラグの意味が0の時、ボローが発生したという意味となり、他のCPUとは逆ですので注意が必要です。
6309
特徴
1982年にHitachiから6809の互換MPUとして発表された。通常はエミュレーションモードで6809互換であるが、ネイティブモードに切り替えるとレジスタや命令が増え高速に動作する。
今後6809と異なる箇所は赤字で表示する。
16bit命令の強化や符号付乗算命令及び除算命令の強化がなされている。
レジスタ
6809に対してアキュムレータが2本(E,F)追加されています。EとFを合わせて16bitのWレジスタとして使用できます。
DとWを合わせて32bitレジスタとして使用できます。
読みだすと-1となるVレジスタが追加されています。
読みだすと0となるZeroレジスタが追加されています。
MD(Mode Registe)が追加されています。
| A | B | E | F |
| D | W | ||
| Q | |||
| Y Index Regsiter | |||
| X Index Regsiter | |||
| U User Stack Pointer | |||
| S System Stack Pointer | |||
| V Transfer Value Regsiter | |||
| Zero Regsiter | |||
| Program Counter | |||
| DP | |||
| CC | |||
| MD | |||
MD(Mode Register)
MPUのモードとエラー状態を示すフラグを集めたレジスタです。LDMDで定数をロード、BITMDで定数とAND演算を行った結果がCCに格納されます。
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| /0 | IL | FM | NM |
/0(Divide-by-zero Exception)
0:正常1:0除算時
IL(Illegal Instruction Exception)
0:正常1:未定義命令
FM(FIRQ uses IRQ stacking method (Entire state))
0:FIRQ割り込み時にPC,CCのみスタックに保存する。1:FIRQ割り込み時に全レジスタ保存する。
エミュレートモード時 PC,U,Y,X,DP,B,A,CC
ネイティブトモード時 PC,U,Y,X,DP,W,B,A,CC
NM(Native Mode (reduced cycles, W stacked on interrupts))
0:エミュレートモード1:ネイティブトモード
メモリー
| $FFFE~$FFFF | RESET |
| $FFFC~$FFFD | NMI |
| $FFFA~$FFFB | SWI |
| $FFF8~$FFF9 | IRQ |
| $FFF6~$FFF7 | FIRQ |
| $FFF4~$FFF5 | SWI2 |
| $FFF2~$FFF3 | SWI3 |
| $FFF0~$FFF1 | Illegal Opcode and Division by Zero Trap |
アドレッシングモード
E,F,Wレジスタをインディクスモードでオフセットアドレスとして使用できます。Wレジスタをベースレジスターとして使用できます。
ただし、ポストバイトのビットの空の関係で、X,Y,S,Uに比べて使用できるモードが限られています。
Indexed and Indirect Addressing Modes and Post byte Information Map
命令
追加レジスタに対する命令の追加
符号付き乗除命令の追加(MULD,DIVD,DIVQ)
16bit演算命令の強化
ADCD,ANDD,ASRD,CLRD,COMD,DECD,EORD,INCD,LSRD,NEGD,ORD,ROLD,RORD,SBCD,TSTD既存のレジスタに上記の命令が追加されています。
ブロック転送命令の追加
| TFM r1+,r2+ | forward block move |
| TFM r1-,r2- | backward block move |
| TFM r1+,r2 | output bytes at M[r2] to peripheral |
| TFM r1,r2+ | input bytes from peripheral to M[r1]) |
オートインクリメント・オートデクリメントが指定できます。
記述例 TFM r1,r2
動作概要(TFM r1+,R2+)
while(w!=0){
*r1+ → *r2+
--W
}
コード $11 $38 Inter-Register Post Byte r1とr2に指定できるレジスタはS, U, Y, X, or Dです。
1つのビットを対象とする論理演算命令の追加
BIAND,BIOR,BIEOR
ダイレクトページで指定されるソース側の指定されたビット位置の値の反転された値とレジスタの指定されたビット位置の論理演算を行いレジスタの指定されたビットに結果を格納します。記述例 BIAND r.i,s.j
コード $11 $31 Bit-Manipulation Post Byte direct page address
r.i∧(¬s.j)→r.i
BAND,BOR,BEOR,LDBT,STBT
ダイレクトページで指定されるメモリーの指定されたビット位置の値とレジスタの指定されたビット位置の論理演算を行いレジスタの指定されたビットに結果を格納します。LDBTはダイレクトページで指定されるメモリーの指定されたビット位置の値をレジスタの指定されたビット位置にロードします。
STBTはLDBTの反対の動作で、レジスタの指定されたビットの値をダイレクトページ指定されたメモリーの指定されたビット位置にストアします。
レジスタとメモリー及びレジスタのビット位置はPost Byteで指定します。
記述例 BAND r.i,s.j
r.i∧s.j→r.i
コード $11 $30 Bit-Manipulation Post Byte direct page address
32bitロードストア命令の追加
LDQ,STQポストインクリメント・プリデクリメントを使用する場合には、増減範囲が2までなので、連続してアクセスする場合はさらに2を増減する必要があります。
レジスタ同士で直接演算する命令を追加
ADDR,ADCR,SUBR,SBCR,ANDR,ORR,EORR,CMPR記述例 ADDR r1,r2
r2+r1→r2
コード $10 $30 Inter-Register Post Byte
論理演算命令の結果をメモリに保存する命令を追加
OIM,AIM,EIM,TIMメモリーとイミディエートで論理演算を行いメモリーに保存します。
記述例 AIM #n,d
d∧n→d
コード $62 n Indexed and Indirect Addressing Modes and Post byte Information
OPコード
E,Fレジスタの命令はA,Bレジスタの命令にプリフィクス11をつける。6809あるにDレジスタの命令がない場合は、Dレジスタの命令はAレジスタの命令にプリフィクス10をつける。Wレジスタの命令はBレジスタの命令にプリフィクス10とつける
6809にDレジスタの命令がある場合は、Wレジスタの命令はAレジスタの命令にプリフィクス10をつける。
6809/6309 命令一覧
赤字はHD6309で追加された命令
≠ 等しくない
∨ Boolean OR
⊻ Boolean exclusive OR
∧ Boolean AND
¬ Boolean Not
% 余
>> 右シフト
<< 左シフト
後の方に上記のビットの組み合わせを表に展開した結果があります。
n:8bit 符号付き整数
nn:16bit 符号付き整数
abs:16bit 絶対アドレス
| Mnemon. | Description | Notes | Addressing Modes | CC | |||||||||||||
| Inherent | imm | dir | index | ext | rel | long rel | E | F | H | I | N | Z | V | C | |||
| ABX | Add to Index Register | X+B→X | 3A | ||||||||||||||
| ADCA | Add with Carry | A+s+C→A | 89 | 99 | A9 | B9 | * | * | * | * | * | ||||||
| ADCB | Add with Carry | B+s+C→B | C9 | D9 | E9 | F9 | * | * | * | * | * | ||||||
| ADCD | Add with Carry | D+s+C→D | 10 89 | 10 99 | 10 A9 | * | * | * | * | ||||||||
| ADCR | Add Register Contents Plus Carry to Register | r2+r1+C→r2 | 10 31 | * | * | * | * | ||||||||||
| ADDA | Add | A+s→A | 8B | 9B | AB | BB | * | * | * | * | * | ||||||
| ADDB | Add | B+s→B | CB | DB | EB | FB | * | * | * | * | * | ||||||
| ADDE | Add | E+s→E | 11 8B | 11 9B | 11 AB | 11 BB | * | * | * | * | * | ||||||
| ADDF | Add | F+s→F | 11 CB | 11 DB | 11 EB | 11 FB | * | * | * | * | * | ||||||
| ADDD | Add to Double acc. | D+s→D | C3 | D3 | E3 | F3 | * | * | * | * | * | ||||||
| ADDR | Add Register Contents to Register | r2+r1→r2 | 10 30 | * | * | * | * | ||||||||||
| ADDW | Add to Double acc. | W+s→W | 10 8B | 10 9B | 10 AB | * | * | * | * | ||||||||
| AIM | AND Immediate Data to Memory | d∧n→d | 02 | 62 | 72 | * | * | 0 | |||||||||
| ANDA | Logical AND | A∧s→A | 84 | 94 | A4 | B4 | * | * | 0 | ||||||||
| ANDB | Logical AND | B∧s→B | C4 | D4 | E4 | F4 | * | * | 0 | ||||||||
| ANDCC | Logical AND with CCR | CC∧s→CC | 1C | * | * | * | * | * | * | ||||||||
| ANDD | Bit-Wise AND Memory Contents to Register | D∧s→D | 10 84 | 10 94 | 10 A4 | 10 B4 | * | * | 0 | ||||||||
| ANDR | AND Register Contents with Register | r2∧r1→r2 | 10 34 | * | * | 0 | |||||||||||
| ASL | Arithmetic Shift Left | d<<1→d | 08 | 68 | 78 | ~ | * | * | * | * | |||||||
| ASLA | Arithmetic Shift Left | A<<1→A | 48 | ~ | * | * | * | * | |||||||||
| ASLB | Arithmetic Shift Left | B<<1→B | 58 | ~ | * | * | * | * | |||||||||
| ASLD | Arithmetic Shift Left | D<<1→D | 10 48 | * | * | * | * | ||||||||||
| ASR | Arithmetic Shift Right | d>>1→d | 07 | 67 | 77 | ~ | * | * | * | ||||||||
| ASRA | Arithmetic Shift Right | A>>1→A | 47 | ~ | * | * | * | ||||||||||
| ASRB | Arithmetic Shift Right | B>>1→B | 57 | ~ | * | * | * | ||||||||||
| ASRD | Arithmetic Shift Right | D>>1→D | 10 47 | * | * | * | |||||||||||
| BAND | AND Bit of Memory to Bit of Register | r.i∧s.j→r.i | 11 30 | ||||||||||||||
| BCC | Branch if Carry Clear | If C=0 | 24 | ||||||||||||||
| BCS | Branch if Carry Set | If C=1 | 25 | ||||||||||||||
| BEQ | Branch if Equal | If Z=1 | 27 | ||||||||||||||
| BGE | Branch if Great/Equal | If N⊻V=0 | 2C | ||||||||||||||
| BGT | Branch if Greater Than | If Z∨{N⊻V}=0 | 2E | ||||||||||||||
| BEOR | Exclusive-OR Register Bit with Memory Bit | r.i⊻s.j→r.i | 11 34 | ||||||||||||||
| BHI | Branch if Higher | If C∨Z=0 | 22 | ||||||||||||||
| BHS | Branch if Higher/Same | If C=0 | 24 | ||||||||||||||
| BIAND | AND Inverse Bit of Memory to Bit of Register | r.i∧(¬s.j)→r.i | 11 31 | ||||||||||||||
| BIEOR | Exclusive-OR Inverse Bit of Memory to Bit of Register | r.i⊻(¬s.j)→r.i | 11 35 | ||||||||||||||
| BIOR | OR Inverse Bit of Memory to Bit of Register | r.i∨(¬s.j)→r.i | 11 33 | ||||||||||||||
| BITA | Bit Test accumulator | A∧s | 85 | 95 | A5 | B5 | * | * | 0 | ||||||||
| BITB | Bit Test accumulator | B∧s | C5 | D5 | E5 | F5 | * | * | 0 | ||||||||
| BITD | Bit Test accumulator | D∧s | 10 85 | 10 95 | 10 A5 | 10 B5 | * | * | 0 | ||||||||
| BITMD | Bit Test the MD Register with an Immediate Value | MD∧s | 11 3C | * | |||||||||||||
| BLE | Branch if Less/Equal | If Z∨{N⊻V}=1 | 2F | ||||||||||||||
| BLO | Branch if Lower | If C=1 | 25 | ||||||||||||||
| BLS | Branch if Lower/Same | If C∨Z=1 | 23 | ||||||||||||||
| BLT | Branch if Less Than | If N⊻V=1 | 2D | ||||||||||||||
| BMI | Branch if Minus | If N=1 | 2B | ||||||||||||||
| BNE | Branch if Not Equal | If Z=0 | 26 | ||||||||||||||
| BOR | OR Bit of Memory to Bit of Register | r.i∨s.j→r.i | 11 32 | ||||||||||||||
| BPL | Branch if Plus | If N=0 | 2A | ||||||||||||||
| BRA | Branch Always | 20 | |||||||||||||||
| BRN | Branch Never | NOP | 21 | ||||||||||||||
| BSR | Branch to Subroutine | 8D | |||||||||||||||
| BVC | Branch if Overflow Clr | If V=0 | 28 | ||||||||||||||
| BVS | Branch if Overflow Set | If V=1 | 29 | ||||||||||||||
| CLR | Clear | 0→d | 0F | 6F | 7F | 0 | 1 | 0 | 0 | ||||||||
| CLRA | Clear accumulator | 0→A | 4F | 0 | 1 | 0 | 0 | ||||||||||
| CLRB | Clear accumulator | 0→B | 5F | 0 | 1 | 0 | 0 | ||||||||||
| CLRE | Clear accumulator | 0→E | 11 4F | 0 | 1 | 0 | 0 | ||||||||||
| CLRF | Clear accumulator | 0→F | 11 5F | 0 | 1 | 0 | 0 | ||||||||||
| CLRD | Clear accumulator | 0→D | 10 4F | 0 | 1 | 0 | 0 | ||||||||||
| CLRW | Clear accumulator | 0→W | 10 5F | 0 | 1 | 0 | 0 | ||||||||||
| CMPA | Compare | A-s | 81 | 91 | A1 | B1 | ~ | * | * | * | * | ||||||
| CMPB | Compare | B-s | C1 | D1 | E1 | F1 | ~ | * | * | * | * | ||||||
| CMPE | Compare | E-s | 11 81 | 11 91 | 11 A1 | 11 B1 | ~ | * | * | * | * | ||||||
| CMPF | Compare | F-s | 11 C1 | 11 D1 | 11 E1 | 11 F1 | ~ | * | * | * | * | ||||||
| CMPD | Compare | D-s | 10 83 | 10 93 | 10 A3 | 10 B3 | * | * | * | * | |||||||
| CMPX | Compare | X-s | 8C | 9C | AC | BC | * | * | * | * | |||||||
| CMPY | Compare | Y-s | 10 8C | 10 9C | 10 AC | 10 BC | * | * | * | * | |||||||
| CMPS | Compare | S-s | 11 8C | 11 9C | 11 AC | 11 BC | * | * | * | * | |||||||
| CMPU | Compare | U-s | 11 83 | 11 93 | 11 A3 | 11 B3 | * | * | * | * | |||||||
| CMPW | Compare | W-s | 10 81 | 10 91 | 10 A1 | * | * | * | * | ||||||||
| CMPR | Compare Register to Register | r2-r1 | 10 37 | * | * | * | * | ||||||||||
| COM | Complement | ¬d→d | 03 | 63 | 73 | * | * | 0 | 1 | ||||||||
| COMA | Complement accumulator | ¬A→A | 43 | * | * | 0 | 1 | ||||||||||
| COMB | Complement accumulator | ¬B→B | 53 | * | * | 0 | 1 | ||||||||||
| COME | Complement accumulator | ¬E→E | 11 43 | * | * | 0 | 1 | ||||||||||
| COMF | Complement accumulator | ¬F→F | 11 53 | * | * | 0 | 1 | ||||||||||
| COMD | Complement accumulator | ¬D→D | 10 43 | * | * | 0 | 1 | ||||||||||
| COMW | Complement accumulator | ¬W→W | 10 53 | * | * | 0 | 1 | ||||||||||
| CWAI | AND CCR, Wait for int. | CC∧n→CC,E=1 | 3C | * | * | * | * | * | * | ||||||||
| DAA | Decimal Adjust Acc. | Decimal Adjust Accumulator A | 19 | * | * | ~ | * | ||||||||||
| DEC | Decrement | d-1→d | 0A | 6A | 7A | * | * | * | |||||||||
| DECA | Decrement accumulator | A-1→A | 4A | * | * | * | |||||||||||
| DECB | Decrement accumulator | B-1→B | 5A | * | * | * | |||||||||||
| DECE | Decrement accumulator | E-1→E | 11 4A | * | * | * | |||||||||||
| DECF | Decrement accumulator | F-1→F | 11 5A | * | * | * | |||||||||||
| DECD | Decrement accumulator | D-1→D | 10 4A | * | * | * | |||||||||||
| DECW | Decrement accumulator | W-1→W | 10 5A | * | * | * | |||||||||||
| DIVD | Signed Integer Divide | D%s→A D/s→B | 11 8D | 11 9D | AD | BD | * | * | * | * | |||||||
| DIVQ | Signed Double-Precision Integer Divide | Q%s→D Q/s→W | 11 8E | 11 9E | AE | BE | * | * | * | * | |||||||
| EIM | Exclusive-OR Immediate Data to Memory | d⊻n→d | 05 | 65 | 75 | * | * | 0 | |||||||||
| EORA | Logical Exclusive OR | A ⊻s→A | 88 | 98 | A8 | B8 | * | * | 0 | ||||||||
| EORB | Logical Exclusive OR | B⊻s→B | C8 | D8 | E8 | F8 | * | * | 0 | ||||||||
| EORD | Logical Exclusive OR | D⊻s→D | 10 88 | 10 98 | 10 A8 | 10 B8 | * | * | 0 | ||||||||
| EORR | Exclusive-OR Register Contents with Register | r1⊻r2→r1 | 10 36 | * | * | 0 | |||||||||||
| EXG | Exchange (r1 size=r2) | r1⇄r2 | 1E | ||||||||||||||
| INC | Increment | d+1→d | 0C | 6C | 7C | * | * | * | |||||||||
| INCA | Increment accumulator | A+1→A | 4C | * | * | * | |||||||||||
| INCB | Increment accumulator | B+1→B | 5C | * | * | * | |||||||||||
| INCE | Increment accumulator | E+1→E | 11 4C | * | * | * | |||||||||||
| INCF | Increment accumulator | F+1→F | 11 5C | * | * | * | |||||||||||
| INCD | Increment accumulator | D+1→D | 10 4C | * | * | * | |||||||||||
| INCW | Increment accumulator | W+1→W | 10 5C | * | * | * | |||||||||||
| JMP | Jump | 0E | 6E | 7E | |||||||||||||
| JSR | Jump to Subroutine | 9D | AD | BD | |||||||||||||
| LBCC | Long Branch if Carry Clear | If C=0 | 10 24 | ||||||||||||||
| LBCS | Branch if Carry Set | If C=1 | 10 25 | ||||||||||||||
| LBEQ | Branch if Equal | If Z=1 | 10 27 | ||||||||||||||
| LBGE | Branch if Great/Equal | If N⊻V=0 | 10 2C | ||||||||||||||
| LBGT | Branch if Greater Than | If Z∨{N⊻V}=0 | 10 2E | ||||||||||||||
| LBHI | Branch if Higher | If C∨Z=0 | 10 22 | ||||||||||||||
| LBHS | Branch if Higher/Same | If C=0 | 10 24 | ||||||||||||||
| LBLE | Branch if Less/Equal | If Z∨{N⊻V}=1 | 10 2F | ||||||||||||||
| LBLO | Branch if Lower | If C=1 | 10 25 | ||||||||||||||
| LBLS | Branch if Lower/Same | If C∨Z=1 | 10 23 | ||||||||||||||
| LBLT | Branch if Less Than | If N⊻V=1 | 10 2D | ||||||||||||||
| LBMI | Branch if Minus | If N=1 | 10 2B | ||||||||||||||
| LBNE | Branch if Not Equal | If Z=0 | 10 26 | ||||||||||||||
| LBPL | Branch if Plus | If N=0 | 10 2A | ||||||||||||||
| LBRN | Branch Never | NOP | 10 21 | ||||||||||||||
| LBVC | Branch if Overflow Clr | If V=0 | 10 28 | ||||||||||||||
| LBVS | Branch if Overflow Set | If V=1 | 10 29 | ||||||||||||||
| LBRA | Long Branch Always | 16 | |||||||||||||||
| LBSR | Long Branch Subroutine | 17 | |||||||||||||||
| LDA | Load accumulator | s→A | 86 | 96 | A6 | B6 | * | * | 0 | ||||||||
| LDB | Load accumulator | s→B | C6 | D6 | E6 | F6 | * | * | 0 | ||||||||
| LDE | Load accumulator | s→E | 11 86 | 11 96 | 11 A6 | 11 B6 | * | * | 0 | ||||||||
| LDF | Load accumulator | s→F | 11 C6 | 11 D6 | 11 E6 | 11 F6 | * | * | 0 | ||||||||
| LDBT | Load Bit of Memory to Bit of Register | d.j→r.i | 11 36 | ||||||||||||||
| LDD | Load Double acc. | s→D | CC | DC | EC | FC | * | * | 0 | ||||||||
| LDS | Load Stack pointer | s→S | 10 CE | 10 DE | 10 EE | 10 FE | * | * | 0 | ||||||||
| LDU | Load User stack ptr | s→U | CE | DE | EE | FE | * | * | 0 | ||||||||
| LDX | Load index register | s→X | 8E | 9E | AE | BE | * | * | 0 | ||||||||
| LDY | Load index register | s→Y | 10 8E | 10 9E | 10 AE | 10 BE | * | * | 0 | ||||||||
| LDW | Load Double acc. | s→W | 10 86 | 10 96 | 10 A6 | 10 B6 | * | * | 0 | ||||||||
| LDQ | Load 32-bit Data into Accumulator Q | s→Q | CD | 10 DC | 10 EC | 10 FC | * | * | 0 | ||||||||
| LDMD | Load the MD Register With Immediate Data | s→MD | 11 3D | ||||||||||||||
| LEAX | Load Effective Memory Address to Register | EA→X | 30 | i | |||||||||||||
| LEAY | Load Effective Memory Address to Register | EA→Y | 31 | i | |||||||||||||
| LEAS | Load Effective Memory Address to Register | EA→S | 32 | ||||||||||||||
| LEAU | Load Effective Memory Address to Register | EA→U | 33 | ||||||||||||||
| LSL | Logical Shift Left | d<<1→d | 08 | 68 | 78 | ~ | * | * | * | * | |||||||
| LSLA | Logical Shift Left | A<<1→A | 48 | ~ | * | * | * | * | |||||||||
| LSLB | Logical Shift Left | B<<1→B | 58 | ~ | * | * | * | * | |||||||||
| LSLD | Logical Shift Left | D<<1→D | 10 48 | * | * | * | * | ||||||||||
| LSR | Logical Shift Right | d>>1→d | 04 | 64 | 74 | 0 | * | * | |||||||||
| LSRA | Logical Shift Right | A>>1→A | 44 | 0 | * | * | |||||||||||
| LSRB | Logical Shift Right | B>>1→B | 54 | 0 | * | * | |||||||||||
| LSRD | Logical Shift Right | D>>1→D | 10 44 | 0 | * | * | |||||||||||
| LSRW | Logical Shift Right | W>>1→W | 10 54 | 0 | * | * | |||||||||||
| MUL | Multiply | A*B→D | 3D | * | * | ||||||||||||
| MULD | Signed Double-Precision Integer Multiply | D*s→Q | 11 8F | 11 9F | 11 AF | 11 BF | * | * | |||||||||
| NEG | Negate | -d→d | 00 | 60 | 70 | * | * | * | * | ||||||||
| NEGA | Negate accumulator | -A→A | 40 | * | * | * | * | ||||||||||
| NEGB | Negate accumulator | -B→B | 50 | * | * | * | * | ||||||||||
| NEGD | Negate accumulator | -D→D | 10 40 | * | * | * | * | ||||||||||
| NOP | No Operation | 12 | |||||||||||||||
| OIM | OR Immediate Data to Memory | d∨n→d | 01 | 61 | 71 | * | * | 0 | |||||||||
| ORA | Logical inclusive OR | A∨s→A | 8A | 9A | AA | BA | * | * | 0 | ||||||||
| ORB | Logical inclusive OR | B∨s→B | CA | DA | EA | FA | * | * | 0 | ||||||||
| ORCC | Inclusive OR CCR | CC∨s→CC | 1A | ||||||||||||||
| ORD | Logical inclusive OR | D∨s→D | 10 8A | 10 9A | 10 AA | 10 BA | * | * | 0 | ||||||||
| ORR | OR Register Contents with Register | r1∨r2→r2 | 10 35 | * | * | 0 | |||||||||||
| PSHS r | Push Selected Registers Onto Stack | {r,...}→[-S] | 34 | ||||||||||||||
| PSHSW | Push the W Register to the System Stack | W→[-S] | 10 38 | ||||||||||||||
| PSHU r | Push Selected Registers Onto Stack | {r,...}→[-U] | 36 | ||||||||||||||
| PSHUW | Push the W Register to the User Stack | W→[-U] | 10 3A | ||||||||||||||
| PULS r | Pull Selected Registers From Stack | [S+]→{r,...} | 35 | ? | ? | ? | ? | ? | ? | ||||||||
| PULSW | Pull the W Register from the System Stack | [S+]→W | 10 39 | ||||||||||||||
| PULU r | Pull Selected Registers From Stack | [U+]→{r,...} | 37 | ? | ? | ? | ? | ? | ? | ||||||||
| PULUW | Pull the W Register from the User Stack | [U+]→W | 10 3B | ||||||||||||||
| ROL | Rotate Left | Cフラグを含めた左ローテート ビット0にはCフラグの値 Cフラグには最上位ビットの値が反映される。 | 09 | 69 | 79 | * | * | * | * | ||||||||
| ROLA | Rotate Left acc. | 49 | * | * | * | * | |||||||||||
| ROLB | Rotate Left acc. | 59 | * | * | * | * | |||||||||||
| ROLD | Rotate Left acc. | 10 49 | * | * | * | * | |||||||||||
| ROLW | Rotate Left acc. | 10 59 | * | * | * | * | |||||||||||
| ROR | Rotate Right | Cフラグを含めた右ローテート 最上位ビットにはCフラグの値 Cフラグにはビット0の内容が反映される。 | 06 | 66 | 76 | * | * | * | |||||||||
| RORA | Rotate Right acc. | 46 | * | * | * | ||||||||||||
| RORB | Rotate Right acc. | 56 | * | * | * | ||||||||||||
| RORD | Rotate Right acc. | 10 46 | * | * | * | ||||||||||||
| RORW | Rotate Right acc. | 10 56 | * | * | * | ||||||||||||
| RTI | Return from Interrupt | 3B | * | * | * | * | * | * | |||||||||
| RTS | Return from Subroutine | 39 | |||||||||||||||
| SBCA | Subtract with Carry | A-s-C→A | 82 | 92 | A2 | B2 | ~ | * | * | * | * | ||||||
| SBCB | Subtract with Carry | B-s-C→B | C2 | D2 | E2 | F2 | ~ | * | * | * | * | ||||||
| SBCD | Subtract with Carry | D-s-C→D | 10 82 | 10 92 | 10 A2 | * | * | * | * | ||||||||
| SBCR | Subtract Register Contents & Carry from Register | r2-r1-C→r1 | 10 32 | * | * | * | * | ||||||||||
| XES | Sign Extend | B→D | 1D | * | * | ||||||||||||
| WXES | Sign-Extend Register F to Register W | W→Q | 14 | * | * | ||||||||||||
| STA | Store accumultor | A→d | 97 | A7 | B7 | * | * | 0 | |||||||||
| STB | Store accumultor | B→d | D7 | E7 | F7 | * | * | 0 | |||||||||
| STE | Store accumultor | E→d | 11 97 | 11 A7 | 11 B7 | * | * | 0 | |||||||||
| STF | Store accumultor | F→d | 11 D7 | 11 E7 | 11 F7 | * | * | 0 | |||||||||
| STBT | Store Bit of Register to Bit of Memory | r.i→d.j | 11 37 | ||||||||||||||
| STD | Store Double acc. | D→d | DD | ED | FD | * | * | 0 | |||||||||
| STS | Store Stack pointer | S→d | 10 DF | 10 EF | 10 FF | * | * | 0 | |||||||||
| STU | Store User stack ptr | U→d | DF | EF | FF | * | * | 0 | |||||||||
| STX | Store index register | X→d | 9F | AF | BF | * | * | 0 | |||||||||
| STY | Store index register | Y→d | 10 9F | 10 AF | 10 BF | * | * | 0 | |||||||||
| STW | Store W register | W→d | 10 97 | 10 A7 | 10 B7 | * | * | 0 | |||||||||
| STQ | Store Q register | Q→d | 10 DD | 10 ED | 10 FD | * | * | 0 | |||||||||
| SUBA | Subtract | A-s→A | 80 | 90 | A0 | B0 | ~ | * | * | * | * | ||||||
| SUBB | Subtract | B-s→B | C0 | D0 | E0 | F0 | ~ | * | * | * | * | ||||||
| SUBE | Subtract | E-s→E | 11 | 11 80 | 11 90 | 11 A0 | ~ | * | * | * | * | ||||||
| SUBF | Subtract | F-s→F | 11 | 11 C0 | 11 D0 | 11 E0 | ~ | * | * | * | * | ||||||
| SUBR | Subtract Register from Register | r2-r1→r2 | 10 32 | * | * | * | * | ||||||||||
| SUBD | Subtract Double acc. | D-s→D | 83 | 93 | A3 | B3 | * | * | * | * | |||||||
| SUBW | Subtract Double acc. | W-s→W | 10 80 | 10 90 | 10 A0 | * | * | * | * | ||||||||
| SWI | Software Interrupt 1 | 3F | 1 | 1 | 1 | ||||||||||||
| SWI2 | Software Interrupt 2 | 10 3F | 1 | ||||||||||||||
| SWI3 | Software Interrupt 3 | 11 3F | 1 | ||||||||||||||
| SYNC | Sync. to interrupt | 13 | |||||||||||||||
| TFM | forward block move | 11 38 | 1 | ||||||||||||||
| TFM | backward block move | 11 39 | 1 | ||||||||||||||
| TFM | output bytes at M[r1] to peripheral) | 11 3A | 1 | ||||||||||||||
| TFM | input bytes from peripheral to M[r2]) | 11 3B | 1 | ||||||||||||||
| TIM | Bit Test Immediate Data Against Memory | S ∧ n | 0B | 6B | 7B | * | * | * | |||||||||
| TFR | Transfer (r1 size<=r2) | r1→r2 | 1F | ||||||||||||||
| TST | Test | s | 0D | 6D | 7D | * | * | 0 | |||||||||
| TSTA | Test accumulator | s | 4D | * | * | 0 | |||||||||||
| TSTB | Test accumulator | s | 5D | * | * | 0 | |||||||||||
| TSTE | Test accumulator | s | 11 4D | * | * | 0 | |||||||||||
| TSTF | Test accumulator | s | 11 5D | * | * | 0 | |||||||||||
| TSTD | Test accumulator | s | 10 4D | * | * | 0 | |||||||||||
| TSTW | Test accumulator | s | 10 5D | * | * | 0 | |||||||||||
∨ Boolean OR
⊻ Boolean exclusive OR
∧ Boolean AND
¬ Boolean Not
% 余
>> 右シフト
<< 左シフト
Indexed and Indirect Addressing Modes and Post byte Information
赤字はHD6309で追加されたモード| Indexed | Indirect | size | |||
| type | Asm | Bit | Asm | Bit | |
| No Offset | ,R | 1RR0 0100 | [,R] | 1RR1 0100 | 0 |
| 5bit Offset | n,R | 0RRn nnnn | 0 | ||
| 8bit Offset | n,R | 1RR0 1000 | [n,R] | 1RR1 1000 | 1 |
| 16bit Offset | n,R | 1RR0 1001 | [n,R] | 1RR1 1001 | 2 |
| A Register Offset | A,R | 1RR0 0110 | [A,R] | 1RR1 0110 | 0 |
| B Register Offset | B,R | 1RR0 0101 | [B,R] | 1RR1 0101 | 0 |
| D Register Offset | D,R | 1RR0 1011 | [D,R] | 1RR1 1011 | 0 |
| E Register Offset | E,R | 1RR0 0111 | [E,R] | 1RR1 0111 | 0 |
| F Register Offset | F,R | 1RR0 1010 | [F,R] | 1RR1 1010 | 0 |
| W Register Offset | W,R | 1RR0 1110 | [W,R] | 1RR1 1110 | 0 |
| Increment By 1 | ,R+ | 1RR0 0000 | 0 | ||
| Increment By 2 | ,R++ | 1RR0 0001 | [,R++] | 1RR1 0001 | 0 |
| Decrement By 1 | ,-R | 1RR0 0010 | 0 | ||
| Decrement By 2 | ,--R | 1RR0 0011 | [,--R] | 1RR1 0011 | 0 |
| No Offset | ,W | 1000 1111 | [,W] | 1001 0000 | 0 |
| 16bit Offset | n,W | 1010 1111 | [n,W] | 1011 0000 | 2 |
| Increment By 2 | ,W++ | 1100 1111 | [,W++] | 1101 0000 | 0 |
| Decrement By 2 | ,--W | 1110 1111 | [,--W] | 1111 0000 | 0 |
| 8bit Offset | n,PCR | 1XX0 1100 | [n,PCR] | 1XX1 1100 | 1 |
| 16bit Offset | n,PCR | 1XX0 1101 | [n,PCR] | 1XX1 1101 | 2 |
| 16bit Address | ,[ads] | 1001 1111 | 2 |
| RR | Register |
| 00 | X |
| 01 | Y |
| 10 | U |
| 11 | S |
Inter-Register Post Byte
赤字はHD6309で変更された箇所| src Register | dtc Register |
| code | Register | code | Register | ||
| 6809 | 6309 | 6809 | 6309 | ||
| 0000 | D | D | 1000 | A | A |
| 0001 | X | X | 1001 | B | B |
| 0010 | Y | Y | 1010 | CCR | CCR |
| 0011 | U | U | 1011 | DP | DP |
| 0100 | S | S | 1100 | -1 | 0 |
| 0101 | PC | PC | 1101 | -1 | 0 |
| 0110 | -1 | W | 1110 | -1 | E |
| 0111 | -1 | V | 1111 | -1 | F |
Bit-Manipulation Post Byte
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Register | src Bit num | dtc Bit num | |||||
| code | Register |
| 00 | CC |
| 01 | A |
| 10 | B |
| 11 | Unused |
PSH/PUL Post Byte
| inst | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PSHU | PC | S | Y | X | DP | B | A | CC |
| PULU | PC | S | Y | X | DP | B | A | CC |
| PSHS | PC | U | Y | X | DP | B | A | CC |
| PULS | PC | U | Y | X | DP | B | A | CC |
| 順序 | ←pull push→ | |||||||
Indexed and Indirect Addressing Modes and Post byte Information Map
| Hi | ||||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |||
| 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | |||
| Low | 0 | 0000 | 0,X | -16,X | 0,Y | -16,Y | 0,U | -16,U | 0,S | -16,S | ,X+ | [,W] | ,Y+ | [nn,W] | ,U+ | [,W++] | ,S+ | [,--W] |
| 1 | 0001 | 1,X | -15,X | 1,Y | -15,Y | 1,U | -15,U | 1,S | -15,S | ,X++ | [,X++] | ,Y++ | [,Y++] | ,U++ | [,U++] | ,S++ | [,S++] | |
| 2 | 0010 | 2,X | -14,X | 2,Y | -14,Y | 2,U | -14,U | 2,S | -14,S | ,-X | ,-Y | ,-U | ,-S | |||||
| 3 | 0011 | 3,X | -13,X | 3,Y | -13,Y | 3,U | -13,U | 3,S | -13,S | ,--X | [,--X] | ,--Y | [,--Y] | ,--U | [,--U] | ,--S | [,--S] | |
| 4 | 0100 | 4,X | -12,X | 4,Y | -12,Y | 4,U | -12,U | 4,S | -12,S | ,X | [,X] | ,Y | [,Y] | ,U | [,U] | ,S | [,S] | |
| 5 | 0101 | 5,X | -11,X | 5,Y | -11,Y | 5,U | -11,U | 5,S | -11,S | B,X | [B,X] | B,Y | [B,Y] | B,U | [B,U] | B,S | [B,S] | |
| 6 | 0110 | 6,X | -10,X | 6,Y | -10,Y | 6,U | -10,U | 6,S | -10,S | A,X | [A,X] | A,Y | [A,Y] | A,U | [A,U] | A,S | [A,S] | |
| 7 | 0111 | 7,X | -9,X | 7,Y | -9,Y | 7,U | -9,U | 7,S | -9,S | E,X | [E,X] | E,Y | [E,Y] | E,U | [E,U] | E,S | [E,S] | |
| 8 | 1000 | 8,X | -8,X | 8,Y | -8,Y | 8,U | -8,U | 8,S | -8,S | n,X | [n,X] | n,Y | [n,Y] | n,U | [n,U] | n,S | [n,S] | |
| 9 | 1001 | 9,X | -7,X | 9,Y | -7,Y | 9,U | -7,U | 9,S | -7,S | nn,X | [nn,X] | nn,Y | [nn,Y] | nn,U | [nn,U] | nn,S | [nn,S] | |
| A | 1010 | 10,X | -6,X | 10,Y | -6,Y | 10,U | -6,U | 10,S | -6,S | F,X | [F,X] | F,Y | [F,Y] | F,U | [F,U] | F,S | [F,S] | |
| B | 1011 | 11,X | -5,X | 11,Y | -5,Y | 11,U | -5,U | 11,S | -5,S | D,X | [D,X] | D,Y | [D,Y] | D,U | [D,U] | D,S | [D,S] | |
| C | 1100 | 12,X | -4,X | 12,Y | -4,Y | 12,U | -4,U | 12,S | -4,S | n,PCR | [n,PCR] | n,PCR | [n,PCR] | n,PCR | [n,PCR] | n,PCR | [n,PCR] | |
| D | 1101 | 13,X | -3,X | 13,Y | -3,Y | 13,U | -3,U | 13,S | -3,S | nn,PCR | [nn,PCR] | nn,PCR | [nn,PCR] | nn,PCR | [nn,PCR] | nn,PCR | [nn,PCR] | |
| E | 1110 | 14,X | -2,X | 14,Y | -2,Y | 14,U | -2,U | 14,S | -2,S | W,X | [W,X] | W,Y | [W,Y] | W,U | [W,U] | W,S | [W,S] | |
| F | 1111 | 15,X | -1,X | 15,Y | -1,Y | 15,U | -1,U | 15,S | -1,S | ,W | [abs] | nn,W | ,W++ | ,--W | ||||
nn:16bit 符号付き整数
abs:16bit 絶対アドレス
Copyright (C) 2012 山本ワールド All Rights Reserved.