[英]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.