你好,目前我正在用 asm 語言做一個專案,我想出了這個代碼:
mov ah, 07h
int 21h
mov bl,al
cmp bl, 'w'
je up
cmp bl, 'W'
je up
該代碼是關于輸入一個字母并跳轉到另一個函式。我想做的是比較它,即使它是大寫或小寫。有沒有辦法做到這一點?
uj5u.com熱心網友回復:
因為大寫字母 [A,Z](ASCII 碼 [65,90])與小寫字母 [a,z](ASCII 碼 [97,122])相差 32,并且由于 ASCII 表的組織方式,所有小寫字母設定了它們的 bit5,而沒有設定大寫字母的 bit5。
使其不區分大小寫
在比較之前,您可以or將字符代碼與 32 進行比較,然后您只需進行一次比較。
mov ah, 07h
int 21h
mov bl, al
or al, 32 ; Make case-insensitive
cmp al, 'w' ; Only comparing lowercase, but accepting both cases
je up
該or al, 32指令的作用是:
- 如果 AL 是 [A,Z] 它變成 [a,z]
- 如果 AL 是 [a,z] 它仍然是 [a,z]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/472512.html
