我自己编写了一个,程序是这样的:
prognam segment
main proc far
assume cs:prognam
start:
push ds
sub ax,ax
push ax
mov ah,1
int 21h
cmp al,7ah
ja exit
cmp al,7ah
jb p6
cmp al,61h
ja p6
cmp al,61h
jb exit
cmp al,50h
ja exit
cmp al,50h
jb p2
cmp al,41h
ja p2
cmp al,41h
jb exit
p2:mov dl,al
mov ah,2h
int 21h
p6:sub al,20h
mov dl,al
mov ah,2h
int 21h
exit:mov ax,4c00h
int 21h
main endp
prognam ends
end start
这个程序我的思路是这样的,首先要判断输入的字符是不是字母,不是字母的就退出,是的话呢,还要判断是大学的还是小写的,是大写的就直接输出,是小写的就减32,转换成大写的。但我用这个程序得到的结果是,如果我输入小写的字母,会得到预期的结果,转换成了大写,可当我们输入大写字母时,它并没有输出大写字母,是输出其它的字符,当我输入其它的字符时,得到的结果也不是我们预期的,这是为什么,我这个程序的问题出在那里,如果要做到我所说的那样,怎样编写这个程序呢?