org 0x100
SEGMENT .CODE
mov ah,0x9
mov dx, Msg1
int 0x21
;string input
mov ah,0xA
mov dx,buff
int 0x21
mov ax,0
mov al,[buff+1]; length
;string UPPERCASE
mov cl, al
mov si, buff
cld
loop1:
lodsb;
cmp al, 'a'
jnb upper
loop loop1
;output
mov ah,0x9
mov dx, buff
int 0x21
exit:
mov ah, 0x8
int 0x21
int 0x20
upper:
sub al,32
jmp loop1
SEGMENT .DATA
Msg1 db 'Press string: $'
buff db 254,0
此代码不起作用。我认为问题出在jnb upper
. 这个程序应该把小写字母变成大写字母。