实验三 代码转换

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电工电子实验中心

实验报告

课程名称:计算机硬件技术基础实验名称:代码转换

姓名:学号:

评定成绩:审阅教师:实验时间: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 码转换的基本方法。

相关文档
最新文档