アセンブラフォーマット
MOV命令を例に,H8/300H-CPUのアセンブラフォーマットについて述べる。表2.1はMOV命令を使って,レジスタR0の
内容をレジスタER1の示すメモリの番地へ転送することを表す命令である。
命令は,操作記号のニーモニック(mnemonic),データのサイズ(size),データの転送元を示すソース(source),転送先
を示すデスティネーション(destination)で表される。ソースやデスティネーションは,レジスタ,メモリの番地,データの値 などを指定する。命令は表2.1のビットパターンのように,2進数に符号化されてCPUが直接理解できるようになる。
表2.1 MOV命令を例にとったアセンブラフォーマット
![]()
オペレーション
オペレーションで使用されている命令記号と動作記号を以下に示す。
Rd → デスティネーション側の汎用レジスタ
Rs →ソース側の汎用レジスタ
Rn →汎用レジスタ
ERd →デスティネーション側の汎用レジスタ(アドレスレジスタまたは32 ビットレジスタ)
ERs →ソース側の汎用レジスタ(アドレスレジスタまたは32 ビットレジスタ)
ERn →汎用レジスタ(32 ビットレジスタ)
(EAd)→ デスティネーションオペランド
(EAs)→ ソースオペランド
PC →プログラムカウンタ
SP →スタックポインタ
CCR →コンディションコードレジスタ
N →CCR のN(ネガティブ)フラグ
Z →CCR のZ(ゼロ)フラグ
V →CCR のV(オーバフロー)フラグ
C →CCR のC(キャリ)フラグ
disp →ディスプレースメント
→ →左辺のオペランドから右辺のオペランドへの転送、または左辺の状態から右辺の状態への遷移
∧ →両辺のオペランドの論理積
∨ →両辺のオペランドの論理和
? →両辺のオペランドの排他的論理和
〜 →反転論理(論理的補数)
( ) < > →オペランドの内容
コンディションコード
以下にコンディションコード記号の説明を表2.3に示す。
表2.3 コンディションコード記号の説明
2.3.4インストラクションフォーマット
以下にインストラクションフォーマット記号の説明を以下に示す。
IMM →イミディエイトデータ(2、3、8、16、32 ビット)
abs →絶対アドレス(8、16、24 ビット)
disp →ディスプレースメント(8、16、24 ビット)
Rs、rd、rn →レジスタフィールド(4 ビット)rs、rd、rn はそれぞれオペランドの形式のRs、Rd、Rn に対応
Ers、erd、ern →レジスタフィールド(3 ビット)ers、erd、ern はオペランドの形式のERs、ERd、ERn に対応
|