主题:请问如何把小写字母变大写
zhoul317
[专家分:0] 发布于 2006-10-09 17:23:00
我刚接触汇编语言,什么都不会,请大家帮下小弟,谢谢!
问题是:从键盘输入一个小写字母,编程将其变成大写,然后显示出来
回复列表 (共4个回复)
沙发
救世猪猪 [专家分:560] 发布于 2006-10-09 18:28:00
转换为大写字母
code segment
assume cs:code
start:
mov ah,01h
int 21h
add al,20h
mov dl,10 ;回车
mov ah,02h
int 21h
mov dl,13
mov ah,02h
int 21h
mov dl,al ;输出
mov ah,02h
int 21h
mov ah,4ch
int 21h
code ends
end start
这段代码只是将小写字母转化为大写,并不检查你输入的是否是小写字母
如果你输入的是小写字母则运行正确,否则会出现乱码等情况
板凳
zljackson [专家分:0] 发布于 2006-10-10 17:48:00
code segment
assume cs:code
begin:
mov ah,1
int 21h
cmp al,'a'
jb stop
cmp al,'z'
ja stop
sub al,20h
mov dl,al
mov ah,2
int 21h
jmp begin
stop: ret
code ends
end begin
3 楼
救世猪猪 [专家分:560] 发布于 2006-10-11 17:26:00
data segment
v1 db 'please input a letter: $'
v2 db 10,13,'you input a wrong letter!',10,13,'please input a new : $'
v3 db 10,13,'after switch is:$'
data ends
code segment
assume cs:code
assume ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset v1
mov ah,09h
int 21h
lab1:
mov ah,01h
int 21h
mov bl,al
sub bl,61h
js lab2
mov bl,al
sub bl,7Bh
jns lab2
;mov dl,10
;mov ah,02h
;int 21h
;mov dl,13
;mov ah,02h
;int 21h
mov dl,al
mov dh,00h
sub dl,20h
push dx
jmp lab3
lab2:
mov dx,offset v2
mov ah,09h
int 21h
jmp lab1
lab3:
mov dx,offset v3
mov ah,09h
int 21h
pop dx
mov ah,02h
int 21h
mov ah,4ch
int 21h
code ends
end start
这是一个可以运行的
输入a--z,如果不在这个范围,要重新输入
4 楼
zhoul317 [专家分:0] 发布于 2006-10-15 18:05:00
谢谢大家!
我来回复