Subsections

3 比較命令

3.1 算術比較(CPA)

3.1.1 内容

命令語 CPA
語源 ComPare Arithmetic (compare:比較する arithmetic:算術)
役割 符号付き整数の比較を行う命令
書式 教科書(p.56)の通り
機能 教科書(p.56)の通り
フラグレジスタ 教科書(p.56)の通り.

この命令は,符号付き整数の差の演算結果の状態がフラグレジスターに設定すると考えれば良い. たとえば,CPA GR1,GR2の場合,GR1-GR2の演算結果の正負,あるいはゼロか否 か,オーバーフローが有るか無いかがフラグレジスタに設定される.ただし,オペランド であるGR1GR2の値は変わらない.

3.1.2 使用例

      CPA   GR0,GR1      ;GR0-GR0 の状態をフラグレジスターに設定
      CPA   GR0,A        ;GR0-(アドレスAの内容) の状態をフラグレジスターに設定
      CPA   GR0,A,GR1    ;GR0-(アドレス[A+GR1]の内容) の状態をフラグレジスターに設定
      CPA   GR0,=5       ;GR0-5 の状態をフラグレジスターに設定

教科書の例題を実行したときのメモリーとレジスターの内容を表 1示す.1, 5, 6, 7行はアセンブラ命 令なので実行されない.そのため,メモリーやレジスタの値は空白としている.

表 1: 教科書List4-11(p.56)の実行例.
プログラム GR1 OF SF ZF AA BB
1 PGM START
2 LD GR1,AA 2 0 0 0 2 -1
3 CPA GR1,BB 2 0 0 0 2 -1
4 RET 2 0 0 0 2 -1
5 AA DC 2
6 BB DC -1
7 END

教科書のList4-11はつまらない例題で,CPAコマンドも動作も分からないし,説明も おかしい.次のようなサンプルの方が良い.

表 2: CPAの実行例.
プログラム GR1 OF SF ZF AA BB
1 PGM START
2 LD GR1,AA 2 0 1 0 -2 -3
3 CPA GR1,BB 2 0 0 0 -2 -3
4 RET 2 0 0 0 -2 -3
5 AA DC -2
6 BB DC -3
7 END

3.2 論理比較(CPL)

3.2.1 内容

命令語 CPL
語源 ComPare Logical (compare:比較する logical:論理上の)
役割 符号無し整数の比較を行う命令
書式 教科書(p.57)の通り
機能 教科書(p.57)の通り
フラグレジスタ 教科書(p.57)の通り.

この命令は,符号無し整数の差の演算結果の状態がフラグレジスターに設定すると考えれば良い. たとえば,CPA GR1,GR2の場合,GR1-GR2の演算結果の正負,あるいはゼロか否 か,オーバーフローが有るか無いかがフラグレジスタに設定される.ただし,オペランド であるGR1GR2の値は変わらない.

3.2.2 使用例

      CPL   GR0,GR1      ;GR0-GR0 の状態をフラグレジスターに設定
      CPL   GR0,A        ;GR0-(アドレスAの内容) の状態をフラグレジスターに設定
      CPL   GR0,A,GR1    ;GR0-(アドレス[A+GR1]の内容) の状態をフラグレジスターに設定
      CPL   GR0,=5       ;GR0-5 の状態をフラグレジスターに設定

教科書の例題を実行したときのメモリーとレジスターの内容を表 3示す.1, 5, 6, 7行はアセンブラ命令なので実行されない.そ のため,メモリーやレジスタの値は空白としている.

このサンプルプログラムで注意することは,符号付き整数でアドレスAAの値を決めている が,比較を行うときは符号無し整数としている.それらは,

アドレス ビットパターン 符号無整数  符号有整数
AA 0000000000000010 (2)$ _{10}$ (2)$ _{10}$
BB 1111111111111111 (65535)$ _{10}$ (-1)$ _{10}$
     
となっている.
表 3: 教科書List4-12(p.58)の実行例.
プログラム GR1 OF SF ZF AA BB
1 PGM START
2 LD GR1,AA 2 0 0 0 2 -1
3 CPL GR1,BB 2 0 1 0 2 -1
4 RET 2 0 1 0 2 -1
5 AA DC 2
6 BB DC -1
7 END


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
2006-01-29


no counter