Home > Tutorial > Lesson 4

2003.10.26

CASLU & COMETU

Lesson 4 比較命令と分岐命令


比較命令(CPAとCPL)

レジスタとメモリの指定したアドレスの内容,またはレジスタとレジスタ間で,比較を行う命令です. 比較命令を実行した結果,汎用レジスタの値などは変更されず,FR(フラグレジスタ)の値のみが設定されます.設定されるのはSF(サインフラグ)とZF(零フラグ)です.

比較命令にも1語長命令と2語長命令があります.書き方は算術演算や論理演算命令と同じですので説明を省略します.

比較命令にはCPA(ComPare Arithmetic 算術比較)命令とCPL(ComPare Logical 論理比較) 命令があります.CPAは2つのデータを符号付整数として比較(算術比較)を行い,CPLは符号無整数として比較(論理比較)を行う点のみが異なります. フラグは以下の表のように設定されます.

比較結果SFZF
(第1オペランド)>(第2オペランド) 0 0
(第1オペランド)=(第2オペランド) 0 1
(第1オペランド)<(第2オペランド) 1 0

フラグがどのように設定されるかについては,アセンブラの仕様p25の比較命令のところも参照してください.