2.3 インストラクションセット

68Kの持つ命令セットは、次のように分類できる。

2.3.1 算術演算
2.3.2 論理演算
2.3.3 シフト/ローテート
2.3.4 ビット操作
2.3.5 BCD演算
2.3.6 データ移動
2.3.7 ジャンプ/コール
2.3.8 システム制御

2.3.1 算術演算

算術演算には、加減剰余の他に、比較、クリア、ネゲートなどがある。剰余算には符号ありと符号なしの両方が用意されている。
これらの演算は、アドレスに対しては、16又は32ビットでデータに対してはすべてのオぺランドサイズで使用できる。


2.3.2 論理演算

論理演算には、AND,OR,EOR,NOTがあり、前三者については即値を使う命令(ANDl,ORl,EORl)があ
る。アドレシングモードの指定により、これらわSRをデスティネーションとすることができる。


2.3.3 シフト/ローテート

シフトとローテートは、レジスタに対しても、メモリに対しても実行できる。但し、メモリ内のデータに対しては16ビットオペ
ランドで1ビットのシフトに限られる。


2.3.4 ビット操作

ビット操作はビットテストとテストしたビットに対して行う操作との組みである。

      ビットテスト 
            指定されたビットが”0”なら、Zフラグを立てる。
      テスト後の操作 
            テスト後の操作には、BTST(何もしない)、BSET(1にする)、BCLR(0にする)、BCHG(反転す
            る)がある。


2.3.5 BCD演算

BCD演算は加減算(ABCD)と符号反転(NBCD)がある。一度に扱えるオペランドサイズは8ビットである。


2.3.6 データ移動

ほとんどのデータ移動に関するプログラムはMOVE命令によって行われる。MOVE命令は、ソース、デスティネーションとも
6ビットで指定される。


2.3.7 ジャンプ/コール

ジャンプ・コールには、無条件分岐、条件分岐の2つがあり、他にも手続きの呼び出し、手続きからの復帰がある。


2.3.8 システム制御

システム制御の命令には、特権命令、トラップ命令、及びSRのシステムバイトを操作する命令がある。