web-dev-qa-db-ja.com

BEQ命令は正確に何をしますか?

理解しようとしている次のアセンブリコードスニペットがあります。 MC68332マイクロコントローラ用のアセンブリです。

LOOP
    some instructions
    some more instructions
BEQ LOOP

BEQをグーグルで検索したところ、結果ゼロで分岐することを意味していることがわかりましたが、それが何をするのかまだよくわかりません。最後の命令の結果を0と比較し、0の場合、LOOP行に戻りますか?

7
jazzybazz

Motorola 68kファミリでは、「等しい場合は分岐」を表し、「ゼロフラグが設定されている場合は指定されたアドレスにジャンプする」ことを意味します(前の比較が成功した場合など)。

ただし、68332はそれとは異なるようであり、「大文字の構文」に基づくと、本質的に同じことを行う別の命令のマクロラッパーである可能性があります。

他のシステムからコードを移植するアセンブリプログラマーは、同様のマクロを利用して移植プロセスを容易にすることができます。

4
Sedat Kapanoglu

正確な答えは、使用しているマイクロコントローラーによって異なります。一般に、オペランドがない場合、アキュムレータが0の場合、BEQは分岐すると予想されます。これは、アキュムレータが計算のプライマリレジスタである単純なマイクロで発生する可能性があります。

どのマイクロコントローラーを使用していますか?そのマイクロのマニュアルでBEQ命令の定義を見つけることができるはずです。

1
Stefan