←前ページへ :  INDEX :  次ページへ→


4-2.比較命令 ( Compare )

   条件分岐を行うためには、何か条件を指定しなければならない。アセンブラでの条件の指定は基本的にフラグしかない。今までは加算、減算でフラグを見てきた。しかし何か条件を見て分岐させたいのは、そういった演算結果の直後とは限らない。そこで必要になってくるのが比較命令である。アセンブラでの比較命令はたった1つしかない。それが「CMP」命令である。

CMP ( Compare Two 0perands ) :比較

CMP	SRC1,SRC2

   動作:SRC1 - SRC2
  影響を受けるフラグ:OF,SF,ZF,AF,CF,PF
    SRC1:レジスタ、メモリー
    SRC2:レジスタ、メモリー、即値(ただしメモリー、メモリーの組み合わせは除く)
  「動作」を見るとわかるように、やっていることは「SUB」命令と同じように、引き算を行っているだけである。しかし引き算の結果は破棄され、フラグの結果だけが残る。これにより、SRC1,SRC2の大きさを比べることができる。例えば、同じ値ならば ZF=1になるし、SRC1の方が小さければSF=1になり、SRC1の方が大きければSF=0といった具合である。このフラグの結果を見て、次のページで説明する、条件分岐で分岐するわけである。
 
条件分岐ではフラグを見るわけであるから、比較命令の直後に条件分岐命令が置かれるわけであるが、場合によってはフラグの変化しない「MOV」命令などが置かれることもある。

←前ページへ :  INDEX :  次ページへ→