1

我正在使用easy68k在汇编中编写程序,如果测试位等于0 [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-Flag 上的分支:

btst #0,d2
beq bitIsCleared
; or
bne bitIsSet

Z-Flag 注册:

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 回答