setf


フラグ条件の設定を行います。(Set Flag Condition)

[指定形式]

-

setf imm4, reg

-

setfcnd reg

 

imm4に指定可能なものを以下に示します。

-

4ビット幅までの値を持つ絶対値式

[機能]

-

“setf imm4, reg”の形式

第1オペランドに指定した絶対値式の値の下位4ビットの値で示されるフラグ状態と,現在のフラグ状態を比較し,値が一致した場合は1を,一致しなかった場合は0を第2オペランドに指定したレジスタに格納します。

-

“setfcnd reg”の形式

cnd部分の文字列で示されるフラグ状態と現在のフラグの状態を比較し,一致する場合は1,一致しなかった場合は0を第2オペランドに指定したレジスタに格納します。

[詳細説明]

-

setf命令に対し,アセンブラでは,機械語命令のsetf命令が1つ生成されます。

-

setfcnd命令に対し,アセンブラでは,対応するsetf命令が生成され(「表 5.32 setfcnd命令」を参照),“setf imm4, reg”の形式に展開されます。

表 5.32

setfcnd命令

命令

フラグ状態

フラグ状態の意味

命令展開

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

 

[フラグ]

CY

OV

S

Z

SAT

[注意事項]

-

setf命令のimm4に4ビットの範囲を越える絶対値式を指定した場合,次のメッセージが出力され,指定された値の下位4ビットが用いられてアセンブルが続行されます。

W0550011 : イミーディエトの値が指定可能な値の範囲を越えています。