1

easy68k を使用してアセンブリでプログラムを書いています。テストされたビットがゼロに等しい場合 [SR で Z=0] に分岐する方法を探していました。

いろいろ調べたのですが答えが出ませんでした

たとえば、次の行があります。

  BTST #0,D2 ;Testing the LSB bit in data register 0

ここで、SR で Z をチェックする方法、または存在する場合は命令が必要なので、テストされたビットがゼロかどうかを知ることができます。

4

2 に答える 2

4

条件コードをテストし、それに基づいて分岐する命令は、一般に。と呼ばれBccます。これらの条件付き分岐命令の個々の名前は、直前の命令がであった場合の意味に基づいていCMPます。

しかし、それ自体では、条件コードをテストして分岐するだけです。だから、あなたはすることができます:

BTST #0,D2 ;Testing the LSB bit in data register 0
BEQ LabelForZSet
;Code for Z clear
于 2012-10-10T13:05:33.853 に答える
1

Zフラグの分岐:

btst #0,d2
beq bitIsCleared
; or
bne bitIsSet

登録するZフラグ:

btst #0,d2
sne  d0
; d0 (byte only) will now be 0xFF if bit was set, 0x00 otherwise)
; if a word is required add ext.w d0
; if a long is required add also ext.l d0
于 2012-10-10T13:33:59.260 に答える