Hello currently I'm doing a project in asm language and I came up with this code:
mov ah, 07h
int 21h
mov bl,al
cmp bl, 'w'
je up
cmp bl, 'W'
je up
The code is about entering a letter and jumping to another function. The thing I want to do is to compare it even if it is in either uppercase or lowercase. Is there a way to do it?
Because the uppercase letters [A,Z] (ASCII codes [65,90]) differ from the lowercase letters [a,z] (ASCII codes [97,122]) by 32, and because of how the ASCII table is organised, all the lowercase letters have their bit5 set while none of the uppercase letters have their bit5 set.
Before comparing you can or
the character code with 32, and then you'll need just one comparison.
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
What this or al, 32
instruction does is: