编写一个汇编程序,要求将用键盘输入的小写字母转换成大写字母并显示出来
答案:2 悬赏:20 手机版
解决时间 2021-04-28 16:05
- 提问者网友:那叫心脏的地方装的都是你
- 2021-04-27 22:57
不需要考虑输入的是大写字母怎么办,dos调用做,可以直接运行的
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-04-27 23:22
额。楼上的已经写的很好了。他是字符串的。我写个单个字符的转换吧。
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
全部回答
- 1楼网友:像个废品
- 2021-04-27 23:54
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
附图:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯