簡體   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