资源描述
南京航空航天大学
电工电子实验中心
实验报告
课程名称: 计算机硬件技术基础
实验名称: 代码转换
姓名: 学号:
评定成绩: 审阅教师:
实验时间: 2017.05.02
南京航空航天大学
一、 实验目的要求
1) 掌握 ASCII 码转换的基本方法。
2) 学会 INT21 功能调用, 掌握人机对话的设计方法。
3) 进一歩熟悉 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 CAPTAL 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
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-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 码转换的基本方法。
展开阅读全文