编写一个汇编程序,要求将用键盘输入的小写字母转换成大写字母并显示出来
4个回答
展开全部
1、打开软件Visual C++6.0,新建一个C源程序,书写C语言程序。
2、首先定义两个字符型变量,代码:char c1,c2;从键盘中输入一个大写字母,代码:c1=getchar();。
3、大写字母与小写字母的ASCII值相差32。代码:c2=c1+32;。将大写字母转化成小写字母。
4、输出小写字母。使用putchar()函数,可以输出一个字符型变量。代码:putchar(c2)。
5、连接编译程序。点击工具栏按钮【Compile(Ctrl+F7)】,编译程序;点击工具栏上的像感叹号的按钮【BuildExecute(Ctrl+F5)】,组建程序。
6、在程序运行窗口中,输入一个大写字母A,按回车键,即可输出一个小写字母。
2013-07-25
展开全部
assume cs:code, ds:datas
datas segment
str db 100 dup(?)
datas ends
code segment
start:
mov ax, datas ;初始化段
mov ds, ax
lea si, str ;载入str存储位置
mov ah, 1 ;1号功能调用输入字符
next:
int 21h
cmp al, 13 ;回车结束输入
jz done
cmp al, 'a' ;对字符范围'a'~'z'进行转换
jl noop
cmp al, 'z'
jg noop
sub al, 20h ;转为对应大写形式
noop:
mov [si], al ;存储
inc si ;更新位置
jmp next
done:
mov ah, 2 ;以下5句输出一个换行
mov dl, 13
int 21h
mov dl, 10
int 21h
mov byte ptr [si], '$' ; 设置结束标志
mov ah, 9 ;9号功能输出ds:dx的字符串
lea dx, str
int 21h
mov ax, 4c00h ;程序结束
int 21h
code ends
end start
附图:
datas segment
str db 100 dup(?)
datas ends
code segment
start:
mov ax, datas ;初始化段
mov ds, ax
lea si, str ;载入str存储位置
mov ah, 1 ;1号功能调用输入字符
next:
int 21h
cmp al, 13 ;回车结束输入
jz done
cmp al, 'a' ;对字符范围'a'~'z'进行转换
jl noop
cmp al, 'z'
jg noop
sub al, 20h ;转为对应大写形式
noop:
mov [si], al ;存储
inc si ;更新位置
jmp next
done:
mov ah, 2 ;以下5句输出一个换行
mov dl, 13
int 21h
mov dl, 10
int 21h
mov byte ptr [si], '$' ; 设置结束标志
mov ah, 9 ;9号功能输出ds:dx的字符串
lea dx, str
int 21h
mov ax, 4c00h ;程序结束
int 21h
code ends
end start
附图:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-05-16
展开全部
额。楼上的已经写的很好了。他是字符串的。我写个单个字符的转换吧。
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AH,1
INT 21H
SUB AL,32
MOV DL,AL
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AH,1
INT 21H
SUB AL,32
MOV DL,AL
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询