1、南京航空航天大学
电工电子实验中心
实验报告
课程名称: 计算机硬件技术基础
实验名称: 代码转换
姓名: 学号:
评定成绩: 审阅教师:
实验时间: 2017.05.02
南京航空航天大学
一、 实验目的要求
1) 掌握 ASCII 码转换的基本方法。
2) 学会 INT21 功能调用, 掌握人机对话的设计方法。
3
2、) 进一歩熟悉 Tddebug 调试环境和 Turbo Debugger 的使用。
二、 实验任务
从键盘输入小写字母(最多 20 个),以 “.”号作为结束标志, 将其变换成相应的大写字母输岀在屏幕上。
三、 实验代码
CRLF MACRO
MOV DL, 0DH
MOV AH, 02H
INT 21H
MOV DL, 0AH ;宏定义回车,换行
MOV AH, 02H
INT 21H
ENDM
DATA SEGMENT
MES1 DB 'PLEASE INPUT THE SMALL LETTER,ENDED WITH ".":$'
MES2 DB 'THE C
3、APTAL LETTER IS:$'
SMALL DB 50 ;?预留键盘输入缓冲区长度为50个
DB 0 ;?预留实际键盘输入字符数的个数
DB 50 DUP(0)
CAPITAL DB 50 DUP('$') ;?预留大写字母缓冲区长度为50个
DATA ENDS
STACK1 SEGMENT STACK
DB 100 DUP (0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START PROC FAR
PUSH DS
MOV AX, 0
4、PUSH AX
MOV AX, DATA
MOV DS, AX
MOV AH, 9
LEA DX, MES1 ;输岀提示信息MES1
INT 21H
CRLF ;宏调用
MOV AH, 0AH
LEA DX, SMALL;接收小写字符串
INT 21H
CRLF ;宏调用
MOV BX,2
LABEL:
MOV AL, SMALL[BX]
CMP AL,'a'
JL LABEL1
CMP AL,'z'
JG LABEL1
MOV CAPITAL[BX-2], AL
SUB CAPITAL[BX
5、2], 20H
JMP LABEL2
LABEL1:
MOV CAPITAL[BX-2],AL
LABEL2:
INC BX
CMP SMALL[BX],46
JNE LABEL
KE: MOV AL,'$';大写字符串后加“$”
MOV SMALL[BX], AL
MOV DX, OFFSET MES2 ;?输岀提示信息MES2
MOV AH, 9
INT 21H
CRLF ;宏调用
MOV DX, OFFSET CAPITAL
MOV AH, 9 ;?输岀大写字符串
INT 21H
RET
START ENDP
CODE ENDS
END START
四、 实验数据
五、 探究内容
1) 若从键盘输入的字符非小写字母,其 ASCII 码减去 20H 后输出为无关字符,如何在程序中避免以上问题?
在程序中,先做了判断是否非小写字符,如果是就过滤掉该字符,用空格占位
六、 实验讨论及心得体会
宏定义的使用省去了许多重复的工作,简化了代码的书写,有利于在编程过程中保持清晰的思路。学会了ASCII 码转换的基本方法。