2014-03-07 107 views
2

我需要檢查char是否是大寫字母。 現在我知道我需要先cmp al, "A",如果是高於或等於,我需要cmp al, "Z",然後如果它少或相等,那麼它是一個大寫字母。 任何想法如何我可以做兩個比較而不必跳過標籤之間?檢查char是否是大寫字母

+0

我自己也不是彙編程序員,所以發佈爲評論而不是答案,但爲什麼不是這樣的:'cmp al',如果比較失敗'','jnz END',cmp al,Z 「','jnz END'如果比較失敗,則寫入轉換代碼,然後寫入'END'標籤。不嚴格遵守「無需跳標」規則,但仍然非常有效,不是嗎? – CompuChip

+0

看看這個問題的答案是你在找什麼:http://stackoverflow.com/questions/19533884/how-to-check-if-a-number-represents-an-uppercase-character-in- nasm-assembly – LeonardBlunderbuss

回答

4

減去'A'然後做一個無符號比較'Z'-'A'

sub al, 'A' 
cmp al, 'Z'-'A' 
jbe uppercase 

請注意,這當然是破壞al註冊。

+0

因此,如果我不想打破'al'註冊表,我只是簡單地將它的內容移動到另一個,並檢查它,對嗎? – TheNotMe

+0

是的,沒錯。 – Jester

+0

謝謝,一旦允許我接受答案。 – TheNotMe

相關問題