编写一个汇编程序,要求将用键盘输入的小写字母转换成大写字母并显示出来

2024-11-11 04:51:09
推荐回答(4个)
回答1:

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,按回车键,即可输出一个小写字母。

回答2:

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

附图:

回答3:

额。楼上的已经写的很好了。他是字符串的。我写个单个字符的转换吧。
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

回答4:

如下即可。