要求:
提示输入字符串;
输入任意字符串,Enter 结束输入;
将字符串中的大写字母转换为小写字母输出;
Enter程序退出。
| 提问时间:2011-6-21 19:10 | 悬赏分:50 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
当时,做而论道的程序虽然提问者被选做了最佳,但是因为问题还不算难,所以做而论道也没有把它收录到博客。
可是,在年前,突然收到通知,做而论道的答案被选为“精彩回答”了,呵呵,受宠若惊啊 !
那就把它写在这里吧。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
精彩回答: 2011-6-21 21:25
DATA SEGMENT
PARS DB 255 ;准备接收255个字符.
NNN DB ? ;用于存放实际输入的个数.
III DB 255 DUP(?) ;255字节的空间.
MESG1 DB 13, 10, 'INPUT CHAR: $' ;用于提示.
MESG2 DB 13, 10, 'OUTPUT CHAR: $' ;用于提示.
DATA ENDS
;
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET MESG1
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H
MOV DX, OFFSET PARS
MOV AH, 10 ;10号功能调用,接收键盘输入.
INT 21H
;---------------------------------------------------
MOV CL, NNN ;收到字符的个数.
MOV CH, 0
LEA SI, III ;收到字符的起始地址.
;----------------------------下面开始循环.
AGAIN:
MOV AL, [SI]
CMP AL, '[' ;- '['
JNC NEXT ;> 'Z'
CMP AL, 'A'
JC NEXT ;< 'A'
OR AL, 00100000B
MOV [SI], AL
NEXT:
INC SI
LOOP AGAIN
;----------------------------循环结束.
MOV BYTE PTR [SI], '$'
MOV DX, OFFSET MESG2
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H
MOV DX, OFFSET III
MOV AH, 9 ;9号功能调用,显示.
INT 21H
;----------------------------显示结束.
MOV AH, 4CH
INT 21H
;============================
CODE ENDS
END START
;====================================================
回答者: 做而论道 | 十五级 采纳率:43% 名人 达人
提问者对于答案的评价:非常感谢
原题网址:http://zhidao.baidu.com/question/282338864.html
;====================================================