廣田さん、丁寧な解説ありがとうございます。後藤です。 > ですからbra命令は常時Trueですから「いつも条件が成立」=「無条件」 > となり、無条件分岐命令です。 □例えば LABEL1: LCD.B #1,CCR BRA LABEL1 これでも無限ループって事ですね。 > brnは逆に「いかなる時も条件が成立しない」= > いつもfalse(偽)ですから「分岐できない分岐命令」となるわけです。 ■だけど LABEL1: LCD.B #0,CCR BRN LABEL1 の場合、BRNのccは"0001"で条件は"False"ですよね。 すると1の立ってるCCRの”Cビット”を条件”False”と比較すると ”0”つまりFalseだから、結果は”True”になり分岐しちゃうような 気がするんですけど、どこの解釈がまちがってるんでしょう? -----途中略----- > > 当然、B'0000はD'0でTrue,B'0001はD'1でFalseって事。 > これは違います。先ほど説明した様に、ccの4ビットは「分岐条件として > CCRのどのビットを使うか」を指示しているのです。CCRの4ビットのビット > パターンを示しているのではありません。 ■BRNでの質問と重複するんですが、 ご教授して頂いた内容を、 ”CCRをccでビットマスクして条件と比較する”と解釈すると、 下記の場合なぜZビットだけの条件になるんですか? マニュアルには、 BNE|Not EQual|0110|Z=0|X=/=Y 符号なし/あり って”0110”と記載されてます。 つまり これだとVビットも使うって事ですよね。 だけど条件はZ=0としか記載されてない? ううん分からん(~_~;) > 例: > LDC.B #0,CCR <- CCRオール0にします。 > MOV.B #0,R0L <= R0Lに0を持ってきます、このときCCR=00000100 > となります。 > BNE LABEL1 <= CCRのZビット=1ですから条件は偽となり分岐しません。 > Zビットだけの条件で分岐するか否かが決まります。 お手数でしょうが、ひとつよろしくお願いします。