ルネサス
BCnd
相対条件分岐
Branch Conditionally
【構文】
BCnd(.length) src
【オペレーション】
if ( Cnd )
PC = PC + src;
【機能】
-
Cndで示す条件の真偽値を判断し、srcで示される分岐先へ相対分岐します。真の場合は分岐しますが、偽の場合は分岐しません。
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”
≠
BLEU
C & ~Z == 0
等しいまたは小さい
≧
BN
S == 1
負
0 >
BLE
等しい、または符号付きで小さい
BLT
S ^ O == 1
符号付きで小さい
BNO
O == 0
Oフラグが“0”
【命令フォーマット】
構文
処理
サイズ
src
pcdspの範囲
コードサイズ
(バイト)
BEQ.S src
S
pcdsp:3
3≦pcdsp≦10
1
BNE.S src
BCnd.B src
B
pcdsp:8
-128≦pcdsp≦127
2
BEQ.W src
W
pcdsp:16
-32768≦pcdsp≦32767
3
BNE.W src
【フラグ変化】
フラグ変化はありません。
【記述例】
BC label1
BC.B label2
弊社の「RXファミリ アセンブラ」では、ディスプレースメントの値(pcdsp:3、pcdsp:8、pcdsp:16)は、分岐先のラベルまたは実効アドレスを指定してください。命令コード(pcdsp)には、指定されたアドレスから命令の配置アドレスを引いた値が埋め込まれます。
BC label
BC 1000h