後藤さん、こんにちは。 すでに他の方が答えていますのでちょっと 補足として書きます。 Bccはマニュアルにあるように「条件によって分岐する」命令です。 ですからccの部分は「どのような条件を利用するか」という「命令の詳細指示」 が入ると考えれば良いでしょう。 条件によって分岐するということは「ある条件が成立した時=True(真)となった 時」実行されるということです。 ですからbra命令は常時Trueですから「いつも条件が成立」=「無条件」 となり、無条件分岐命令です。brnは逆に「いかなる時も条件が成立しない」= いつもfalse(偽)ですから「分岐できない分岐命令」となるわけです。 では、「条件」って何でしょう。 これがCCRの各ビットやビットの組み合わせ です。マニュアルの「条件」のところのtrue,falseと並んでZ=1,Z=0,CvZ=1,... などが書かれていますね。この記号とccrの記号が一致しますでしょう。 > もしかして、CCRの下位4bitは、演算結果のコンディション?として > 割り当てられていて、 ここまでは、その通りです。このビット条件を使って分岐します。条件分岐は 演算する | CCRが変化する | CCR条件で分岐する <- この部分で使います。 > それを指してるんですかねえ。 > 当然、B'0000はD'0でTrue,B'0001はD'1でFalseって事。 これは違います。先ほど説明した様に、ccの4ビットは「分岐条件として CCRのどのビットを使うか」を指示しているのです。CCRの4ビットのビット パターンを示しているのではありません。 例: LDC.B #0,CCR <- CCRオール0にします。 MOV.B #0,R0L <= R0Lに0を持ってきます、このときCCR=00000100 となります。 BNE LABEL1 <= CCRのZビット=1ですから条件は偽となり分岐 しません。 Zビットだけの条件で分岐するか否かが決まります。 さて、BRAやBRN命令は何のためにあるのでしょうか? BRAは近距離でしたらjmp @:24より効率的にプログラムメモリを使用できます。 近距離でしたらJMP @:24に比べて実行時間も有利です。長距離では優位性は ありません。 BRNは実行ステート数の多いNOP命令です。 では。 -- /****************************************************************************** Name: 廣田 正孝 "Masataka Hirota" E-mail address: mhirota@xxxxxxxxxxxxx GCD03040@xxxxxxxxxxx ******************************************************************************/