BNE 命令 (Branch if Not Equal)
ゼロフラグがクリアされている場合に、指定された場所へアセンブリの実行位置を変更します。

BNEオーバーロード
オペコード 構文 アドレッシングモード バイト数 命令サイクル
D0
BNE near
PC Rel.
2
2
1, 2


1. 実際に分岐が発生した場合、1サイクル追加
2. エミュレーションモード時1サイクル追加
 
フラグ変化
-------

この命令はステータスフラグを変更しない。

解説
BNE命令はゼロフラグがクリアされている場合に、現在のプログラムカウンタを基準に、オペランドに指定された符号付8ビットオフセットの示すアドレスへプログラムの実行位置を変えます。
通常は、CMP命令などの比較演算を伴って実行されますが、用途によってはそのほかの命令を伴って使用されることがあります。
なお、レジスタに0以外の値を書込むとゼロフラグはクリアされるため、比較演算を伴わず使用されることも非常に多いです。

次の例はBNE命令を利用した簡易的な for ループの実装です。1から指定された数までの整数の和を計算します。
; BNE for-Loop Sample
; Calculate sum[k=1 to n] k

LDA	n	;
STA	$00	;
LDA	#$0000	;

loop:
CLC		;
ADC	$00	;
DEC	$00	;
BNE	loop	;
参照