使用8086汇编语言编写程序实现:将从键盘输入的小写字母转换成大写字母输出。求程序流程图?

 我来答
重新开始dan
2018-01-05 · TA获得超过258个赞
知道答主
回答量:93
采纳率:0%
帮助的人:64.8万
展开全部
data segment
chars db 200 dup(?) ;开辟200字节的缓冲区
data ends
;---------------------------------
code segment
assume cs:code,ds:data

start :
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
lea bx ,chars
mov si,0
mov ch,0
;----------------------输入字符子程序
scanf:
mov ah,1
int 21h
cmp al,0dh
jz crt
cmp al,61h
jnb L1 ;al>='a'
mov [bx],al
inc bx
inc ch
jmp scanf
;--------------------------
;-----------------------输出字符
crt:
mov dl,chars[si]
mov ah,2
int 21h
inc si
dec ch
jz exit
jmp crt
;----------------------
exit:
mov ah,4ch
int 21h
;----------------------
L1:
cmp al,7ah ;al<='z'
jbe L2
mov [bx],al
inc bx
inc ch
jmp scanf
;---------------------
L2:
sub al,20h
mov [bx],al
inc bx
inc ch
jmp scanf
;---------------------
code ends
end start

或者
data segment
a db 'abcd$'
b db 'abcd$'
data ends
stack segment stack
db 200 dup(?)
stack ends
code segment
assume cs:code,ds:data,ss:stack
a1 proc far
start:mov ax,data
mov ds,ax
mov cx,10
call upper
mov dx,offset b
mov ah,9h
int 21h
mov ah,4ch
int 21h
a1 endp
upper proc near
mov si,0
mov cx,4
l1: mov dl,a[si]
mov al,20h
sub dl,al
mov b[si],dl
inc si
loop l1
ret
upper endp
code ends
end start
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式