繁体   English   中英

组装Motorola 68k,如果测试位为零,如何分支?

[英]Assembly Motorola 68k, how to branch if a tested bit is zero?

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

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

例如,我有这行:

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

现在我想要一种方法,或者如果存在的话,可以在SR中检查Z,因此我可以知道测试的位是否为零。

测试条件代码和基于它们的分支的指令通常称为Bcc 这些条件转移指令的单独名称基于如果紧接在前的指令是CMP含义。

但是,他们自己所做的只是测试条件代码并进入分支。 因此,您可以执行以下操作:

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

在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM