LoginSignup
0
0

More than 1 year has passed since last update.

H8 アセンブラ 命令セット

Last updated at Posted at 2023-02-23

データ転送命令

命令 内容
MOV 汎用レジスタと汎用レジスタまたは汎用レジスタとメモリ間でデータ転送します。
PUSH 汎用レジスタの内容をスタックに退避します。
POP スタックから汎用レジスタへデータを復帰します。
MOVTPE 汎用レジスタの内容をクロックに同期したタイミングで外部メモリに転送します。
MOVFPE 外部メモリの内容を クロックに同期したタイミングで汎用レジスタに転送します。

算術演算命令

命令 内容
ADD 汎用レジスタと汎用レジスタまたは汎用レジスタとイミディエイトデータ間の加減算を行います
SUB 汎用レジスタと汎用レジスタまたは汎用レジスタとイミディエイトデータ間の加減算を行います
ADDX 汎用レジスタと汎用レジスタまたは汎用レジスタとイミディエイトデータ間のキャリ付きの加減算を行います。
SUBX 汎用レジスタと汎用レジスタまたは汎用レジスタとイミディエイトデータ間のキャリ付きの加減算を行います。
INC 汎用レジスタに 1 または 2 を加減算します
DEC 汎用レジスタに 1 または 2 を加減算します
ADDS 32 ビットレジスタに 12または 4 を加減算します。
SUBS 32 ビットレジスタに 12または 4 を加減算します。
DAA 汎用レジスタ上の加減算結果を CCR を参照して 4 ビット BCD データに補正します。
DAS 汎用レジスタ上の加減算結果を CCR を参照して 4 ビット BCD データに補正します。
MULXU 汎用レジスタと汎用レジスタ間の符号なし乗算を行います。
MULXS 汎用レジスタと汎用レジスタ間の符号付き乗算を行います。
DIVXU 汎用レジスタと汎用レジスタ間の符号なし除算を行います。
DIVXS 汎用レジスタと汎用レジスタ間の符号付き除算を行います。
CMP 汎用レジスタと汎用レジスタまたは汎用レジスタとイミディエイトデータ間の比較を行いその結果を CCR に反映します。
NEG 汎用レジスタの内容の 2 の補数(算術的補数)をとります。
EXTS 16 ビットレジスタの下位 8 ビットをワードサイズに符号拡張します。
EXTU 16 ビットレジスタの下位 8 ビットをワードサイズにゼロ拡張します。

論理演算命令

命令 内容
AND 汎用レジスタと汎用レジスタまたは汎用レジスタとイミディエイトデータ間の論理積をとります。
OR 汎用レジスタと汎用レジスタまたは汎用レジスタとイミディエイトデータ間の論理和をとります。
XOR 汎用レジスタと汎用レジスタまたは汎用レジスタとイミディエイトデータ間の排他的論理和をとります。
NOT 汎用レジスタの内容の 1 の補数(論理的補数)をとります。

シフト命令

命令 内容
SHAL 汎用レジスタの内容を算術的にシフトします。
SHAR 汎用レジスタの内容を算術的にシフトします。
SHLL 汎用レジスタの内容を論理的にシフトします。
SHLR 汎用レジスタの内容を論理的にシフトします。
ROTL 汎用レジスタの内容をローテートします。
ROTR 汎用レジスタの内容をローテートします。
ROTXL 汎用レジスタの内容をキャリフラグを含めてローテートします。
ROTXR 汎用レジスタの内容をキャリフラグを含めてローテートします。

ビット操作命令

命令 内容
BSET 汎用レジスタまたはメモリのオペランドの指定された 1 ビットを 1 にセットします。
BCLR 汎用レジスタまたはメモリのオペランドの指定された 1 ビットを 0 にクリアします。
BNOT 汎用レジスタまたはメモリのオペランドの指定された 1 ビットを反転します。
BTST 汎用レジスタまたはメモリのオペランドの指定された 1 ビットをテストしゼロフラグに反映します。
BAND 汎用レジスタまたはメモリのオペランドの指定された 1 ビットとキャリフラグとの論理積をとり結果をキャリフラグに格納します。
BIAND 汎用レジスタまたはメモリのオペランドの指定された 1 ビットを反転しキャリフラグとの論理積をとり結果をキャリフラグに格納します。
BOR 汎用レジスタまたはメモリのオペランドの指定された 1 ビットとキャリフラグとの論理和をとり結果をキャリフラグに格納します。
BIOR 汎用レジスタまたはメモリのオペランドの指定された 1 ビットを反転しキャリフラグとの論理和をとり結果をキャリフラグに格納します。
BXOR 汎用レジスタまたはメモリのオペランドの指定された 1 ビットを反転しキャリフラグとの論理和をとり結果をキャリフラグに格納します。
BIXOR 汎用レジスタまたはメモリのオペランドの指定された 1 ビットを反転しキャリフラグとの排他的論理和をとり結果をキャリフラグに格納します。
BLD 汎用レジスタレジスタまたはメモリのオペランドの指定された 1 ビットをキャリフラグに転送します。
BILD 汎用レジスタレジスタまたはメモリのオペランドの指定された 1 ビットを反転しキャリフラグに転送します。
BST 汎用レジスタまたはメモリのオペランドの指定された 1 ビットにキャリフラグの内容を転送します。
BIST 汎用レジスタまたはメモリのオペランドの指定された 1 ビットにキャリフラグの内容を転送します。

分岐命令

命令 内容
Bcc 指定した条件が成立しているとき指定されたアドレスへ分岐します。
JMP 指定されたアドレスへ無条件に分岐します。
BSR 指定されたアドレスへサブルーチン分岐します。
JSR 指定されたアドレスへサブルーチン分岐します。
RTS サブルーチンから復帰します。

システム制御命令

命令 内容
TRAPA 命令トラップ例外処理を行います。
RTE 例外処理ルーチンから復帰します。
SLEEP 低消費電力状態に遷移します。
LDC 汎用レジスタまたはメモリの内容を CCR に転送します。またイミディエイトデータを CCR に転送します。
STC CCR の内容を汎用レジスタまたはメモリに転送します。CCR は 8 ビットですがCCR とメモリ間の転送はワードサイズで行われ上位 8 ビットが有効になります。
ANDC CCR とイミディエイトデータの論理積をとります。
ORC CCR とイミディエイトデータの論理和をとります。
XORC CCR とイミディエイトデータの排他的論理和をとります。
NOP PC のインクリメントだけを行います。

ブロック転送命令

命令 内容
EEPMOV ブロック転送命令です。ER5 で示されるアドレスから始まりR4L または R4 で指定されるバイト数のデータをER6 で示されるアドレスのロケーションへ転送します。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0