比較命令(機械語)

機械語において、比較命令とは、最も単純化した場合、「あるレジスタの値」から「別のレジスタの値もしくは即値」を引いて、大小を比較する命令のことです。

AとBの比較命令の後、ゼロフラグが1であれば、AとBは同じ値です。同様に、ゼロフラグが0であれば、AとBは異なる値です。

また、AとBの比較命令の後、ゼロフラグが0かつサインフラグが1であれば、ABです。同様に、ゼロフラグが0かつサインフラグが0であれば、ABです。

比較命令のオペランド

比較命令では、少なくとも以下の二つのオペランドを指定します。

・引かれる側のレジスタを指定するオペランド

・引く側のレジスタもしくは即値を指定するオペランド

比較命令の実行の流れ

機械語の命令の実行を基礎として、比較命令は、以下のように実行されます。

レジスタAの値とレジスタBの値を比較する場合

1. 「レジスタAを指定するオペランド」を制御信号として、レジスタAの値が減算器の引かれる側に入力される。(詳細は、レジスタの指定を参照)

2. 「レジスタBを指定するオペランド」を制御信号として、レジスタBの値が減算器の引く側に入力される。

3. 減算器の結果を元に、ゼロフラグとサインフラグの値が更新される。

レジスタの値と即値を比較する場合

1. 「レジスタを指定するオペランド」を制御信号として、レジスタの値が減算器の引かれる側に入力される。

2. 「即値を指定するオペランド」の値が減算器の引く側に入力される。(詳細は、即値の指定を参照)

3. 減算器の結果を元に、ゼロフラグとサインフラグの値が更新される。