汇编Motorola 68k,如果测试位为零,如何分支?

时间:2012-10-10 12:29:53

标签: assembly branch 68000

我正在使用easy68k编写汇编程序,如果测试位等于零[SR中Z = 0],我正在寻找一种方法来制作分支。

我搜索了很多但没有得到答案,

例如,我有这一行:

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

现在我想要一种方法,或者如果有的话,在SR中检查Z的指令,这样我就可以知道测试位是否为零。

2 个答案:

答案 0 :(得分:4)

测试条件代码和基于它们的分支的指令通常称为Bcc。这些条件分支指令的各个名称基于前一条指令为CMP时的含义。

但是,他们自己所做的只是测试条件代码并采取分支。所以,你可以这样做:

BTST #0,D2 ;Testing the LSB bit in data register 0
BEQ LabelForZSet
;Code for Z clear

答案 1 :(得分: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