编写程序实现:将从键盘输入的小写字母转换成大写字母输出。 程序流程图,程序输出显示如下图所示:(提示

用8086汇编语言编写程序

流程图?说下结构好了,输入字符 然后判断输入的字符类型,如果是小写字母将输入的字母转换成大写字母,并输出,如果不是则显示错误信息
代码现编:

data segment
inputmsg db 'input :$'
errmsg db 0dh,0ah,'it's not a litter$'
msg db 0dh,0ah,'your input :$'
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ah,9
mov dx,offset inputmsg
int 21h
mov ah,1
int 21h
cmp al,61h
jc error
cmp al,7bh
jnc error
sub al,20h
mov dx,offset msg
mov ah,9
int 21h
mov ah,2
mov dl,al
int 21h
jmp over
error:
mov ah,9
mov dx,offset errmsg
int 21h
over:
mov ah,7
int 21h
mov ax,4c00h
int 21h
code ends
end start
另外,站长团上有产品团购,便宜有保证
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
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追问

谢谢你的回答 ,不过我在emu8086软件上测试没有通过啊!哪里的问题?

追答

?不好意思我们汇编课调试都是在电脑本身自带的运行程序中运行的,把你邮箱给我,我把我们上课用的LINK.EXE和MASM.EXE传给你,这样在电脑的运行程序中就可以运行了,emu8086软件这个软件我也没用过,不知道是什么原因

本回答被提问者和网友采纳
第2个回答  2011-05-04
楼上写的太复杂了;
你也没有说用哪种语言,所以就用C语言写了
#include<stdio.h>
void main()
{
char i;
printf("请输入小写英文字母:");
i=getchar();
if(i<'a'||i>'z')
printf("输入错误");
else if(i>'a'&&i<'z')
i=i-32;
printf("输出大写字母为:%c\n",i);
}
第3个回答  2011-05-05
先读ax加相差的值直接输出
相似回答