BCnd

相対条件分岐

BCnd

Branch Conditionally


【構文】

BCnd(.length) src

 

【オペレーション】

if ( Cnd )

PC = PC + src;

 

【機能】

-

Cndで示す条件の真偽値を判断し、srcで示される分岐先へ相対分岐します。真の場合は分岐しますが、偽の場合は分岐しません。

-

BCndには以下の種類があります。

BCnd

条件

 

BGEU,

BC

C == 1

等しいまたは大きい/

Cフラグが“1”

BEQ,

BZ

Z == 1

等しい/

Zフラグが“1”

=

BGTU

C & ~Z == 1

大きい

<

BPZ

S == 0

正またゼロ

0≦

BGE

S ^ O == 0

等しい、または符号付きで大きい

BGT

(S ^ O) |

Z == 0

符号付きで大きい

<

BO

O == 1

Oフラグが“1”

 

BLTU,

BNC

C == 0

小さい/

Cフラグが“0”

>

BNE,

BNZ

Z == 0

等しくない/

Zフラグが“0”

BLEU

C & ~Z == 0

等しいまたは小さい

BN

S == 1

0 >

BLE

(S ^ O) |

Z == 1

等しい、または符号付きで小さい

BLT

S ^ O == 1

符号付きで小さい

>

BNO

O == 0

Oフラグが“0”

 

 

【命令フォーマット】

構文

処理

サイズ

src

pcdspの範囲

コードサイズ

(バイト)

BEQ.S src

S

pcdsp:3

3≦pcdsp≦10

1

BNE.S src

S

pcdsp:3

3≦pcdsp≦10

1

BCnd.B src

B

pcdsp:8

-128≦pcdsp≦127

2

BEQ.W src

W

pcdsp:16

-32768≦pcdsp≦32767

3

BNE.W src

W

pcdsp:16

-32768≦pcdsp≦32767

3

 

【フラグ変化】

フラグ変化はありません。

 

【記述例】

BC      label1
BC.B     label2
弊社の「RXファミリ アセンブラ」では、ディスプレースメントの値(pcdsp:3、pcdsp:8、pcdsp:16)は、分岐先のラベルまたは実効アドレスを指定してください。命令コード(pcdsp)には、指定されたアドレスから命令の配置アドレスを引いた値が埋め込まれます。
 
BC      label
BC      1000h