機械語において、比較命令とは、最も単純化した場合、「あるレジスタの値」から「別のレジスタの値もしくは即値」を引いて、大小を比較する命令のことです。
AとBの比較命令の後、ゼロフラグが1であれば、AとBは同じ値です。同様に、ゼロフラグが0であれば、AとBは異なる値です。
また、AとBの比較命令の後、ゼロフラグが0かつサインフラグが1であれば、A<Bです。同様に、ゼロフラグが0かつサインフラグが0であれば、A>Bです。
比較命令では、少なくとも以下の二つのオペランドを指定します。
・引かれる側のレジスタを指定するオペランド
・引く側のレジスタもしくは即値を指定するオペランド
機械語の命令の実行を基礎として、比較命令は、以下のように実行されます。
1. 「レジスタAを指定するオペランド」を制御信号として、レジスタAの値が減算器の引かれる側に入力される。(詳細は、レジスタの指定を参照)
2. 「レジスタBを指定するオペランド」を制御信号として、レジスタBの値が減算器の引く側に入力される。
3. 減算器の結果を元に、ゼロフラグとサインフラグの値が更新される。
1. 「レジスタを指定するオペランド」を制御信号として、レジスタの値が減算器の引かれる側に入力される。
2. 「即値を指定するオペランド」の値が減算器の引く側に入力される。(詳細は、即値の指定を参照)
3. 減算器の結果を元に、ゼロフラグとサインフラグの値が更新される。