第二部 トロン仕様チップ命令詳細第三章 比較命令
CMP
比較命令 <<L1R>>, <<L1>>, <<L2>>

【ニモニックとオペランド】

CMP src1, src2

【機能】

Compare
比較

【オプション】

なし

【命令フォーマットと表記法】

【解説】

 src1とsrc2を符号付きデータとして比較し、その結果によりフラグをセットします。
 src1とsrc2のサイズが異なる場合には、サイズの小さい方のオペランドを符号拡張した上で比較します。
 CMP:Qフォーマットsrc1はリテラル値です。ビットパターンとオペランド値の対応は以下の通りです。

	000	8
	001	1
	010	2
	  : 	:
	110	6
	111	7

【フラグ変化】

【発生EIT】

RIE  src1 [Gen/r], src1 [Sho/r], src2 [Gen-I/r], src2 [Sho-I/r]のアドレッシングモード違反
RIE sx = 11, sy = 11

【使用例】



 汎用レジスタR3に指定されたメモリアドレスから2バイトのデータをフェッチします。このデータを32ビット(H'ffffffff)に符号拡張し、R1に保持された値から減算することによって比較します。減算の結果src1(H'ffff)がsrc2(H'00000000)より小さいので、L_flagZ_flagをクリアします。

 8ビット長の数値H'64(#100)は32ビットに符号拡張し、R0の値(H'00000001)から減算して比較します。減算の結果、src1(#100)がsrc2(H'00000001)より大きいので、L_flagをセットします。