フラグ条件の設定を行います。(Set Flag Condition)
[指定形式]
imm4に指定可能なものを以下に示します。
[機能]
第1オペランドに指定した絶対値式の値の下位4ビットの値で示されるフラグ状態と,現在のフラグ状態を比較し,値が一致した場合は1を,一致しなかった場合は0を第2オペランドに指定したレジスタに格納します。
cnd部分の文字列で示されるフラグ状態と現在のフラグの状態を比較し,一致する場合は1,一致しなかった場合は0を第2オペランドに指定したレジスタに格納します。
[詳細説明]
- | setf命令に対し,アセンブラでは,機械語命令のsetf命令が1つ生成されます。 |
- | setfcnd命令に対し,アセンブラでは,対応するsetf命令が生成され(「表 5.32 setfcnd命令」を参照),“setf imm4, reg”の形式に展開されます。 |
|
|
|
|
setfgt
|
((S xor OV)or Z)= 0
|
Greater than(signed)
|
setf 0xF
|
setfge
|
(S xor OV)= 0
|
Greater than or equal(signed)
|
setf 0xE
|
setflt
|
(S xor OV)= 1
|
Less than(signed)
|
setf 0x6
|
setfle
|
((S xor OV)or Z)= 1
|
Less than or equal(signed)
|
setf 0x7
|
setfh
|
(CY or Z)= 0
|
Higher(Greater than)
|
setf 0xB
|
setfnl
|
CY = 0
|
Not lower(Greater than or equal)
|
setf 0x9
|
setfl
|
CY = 1
|
Lower(Less than)
|
setf 0x1
|
setfnh
|
(CY or Z)= 1
|
Not higher(Less than or equal)
|
setf 0x3
|
setfe
|
Z = 1
|
Equal
|
setf 0x2
|
setfne
|
Z = 0
|
Not equal
|
setf 0xA
|
setfv
|
OV = 1
|
Overflow
|
setf 0x0
|
setfnv
|
OV = 0
|
No overflow
|
setf 0x8
|
setfn
|
S = 1
|
Negative
|
setf 0x4
|
setfp
|
S = 0
|
Positive
|
setf 0xC
|
setfc
|
CY = 1
|
Carry
|
setf 0x1
|
setfnc
|
CY = 0
|
No carry
|
setf 0x9
|
setfz
|
Z = 1
|
Zero
|
setf 0x2
|
setfnz
|
Z = 0
|
Not zero
|
setf 0xA
|
setft
|
always 1
|
Always 1
|
setf 0x5
|
setfsa
|
SAT = 1
|
Saturated
|
setf 0xD
|
[フラグ]
[注意事項]
- | setf命令のimm4に4ビットの範囲を越える絶対値式を指定した場合,次のメッセージが出力され,指定された値の下位4ビットが用いられてアセンブルが続行されます。 |
W0550011 : イミーディエトの値が指定可能な値の範囲を越えています。
|