微机原理:完美的大小写字母互换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验:接受键盘字符(以回车键结束),并将其中的小写字母转化为大写字母,大写字母转化为小写字母,然后显示在屏幕上。
要求:BX指向字符行缓冲区首址,偏移地址指针SI清0,使用DOS 01H号功能接受键入字符。
以下程序完美的实现了大小写字母的混合输入后的混合转换,即大转小,小转大,并可键入空格,如:I LOVE you。
DATAS SEGMENT
DATA1 DB 20 DUP('?')
DATA2 DB'please input string,end with enter,exit with ctrl-c:',0DH,0AH,'$'
DATA3 DB'the connverted string is:',0DH,0AH,'$'
DATA4 DB 0DH,0AH,'$'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
XOR SI,SI
MOV BX,OFFSET DATA1
LEA DX,DATA2
MOV AH,9
INT 21H
LOOP1: MOV AH,1
INT 21H
CMP AL,03H
JZ LOOP4
CMP AL,0DH
JZ LOOP3
CMP AL,41H
JAE LOOP5
LOOP2:SUB AL,20H
MOV [BX+SI],AL
INC SI
JMP LOOP1
L5:CMP AL,61H
JAE LOOP2
ADD AL,20H
MOV [BX+SI],AL
INC SI
JMP LOOP1
L3:LEA DX,DATA4
MOV AH,9
INT 21H
LEA DX,DATA3
MOV AH,9
INT 21H
MOV [BX+SI],AL
MOV AL,0AH
MOV [BX+SI+1],AL
MOV AL,'$'
MOV [BX+SI+2],AL
MOV DX,BX
MOV AH,9
INT 21H
LEA DX,DATA4
MOV AH,9
INT 21H
JMP LOOP4
LOOP4:MOV AH,4CH
INT 21H
CODES ENDS
END START
运行结果: