繁体   English   中英

以68k语言使用AND和OR

[英]Using AND and OR in 68k language

我需要这样的东西:

if((ch > 'g' && ch < 'm') || (A >= 0 && A <= 100)) {
    // Do some stuff
} else {
    // Do some other stuff
}

ch是8位字符,而A是32位整数。

我怀疑我将需要以下代码:

CMPI.B    #$67, ch
BLT       SOMELABEL

CMPI.B    #$6D, ch
BGT       SOMELABEL

CMPI.W    #0, A
BLE       SOMELABEL

CMPI.W    #100, A
BGE       SOMELABEL

如何使用OR和AND运算符将它们组合在一起?

与其使用所有这些条件分支创建意大利面条代码, Scc考虑使用cc是条件的Scc命令。 如果条件为真,此命令将目标字节设置为$ FF,否则设置为零。 因此,您可以拥有如下代码:

cmpi.b #'g',ch
shi.b  d0
cmpi.b #'m',ch
slo.b  d1
and.b  d1,d0 ;now d0 is nonzero if all conditions for 'ch' are true
... same for A with result in d1
or.b   d1,d0
beq    else_branch
... here is 'if' branch 

暂无
暂无

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

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