西北工业大学明德学院
实验报告
实验项目 微机原理及应用
班 级 121204
姓 名 田家豪 王辰硕
学 号 121566 121567
指导老师 伍明高
时 间 2015-3-17
实验题目
显示程序实验
实验目的
(1) 掌握在PC机上以十六进制形式显示数据的方法。
(2) 掌握部分DOS功能调用使用方法。
(3) 熟悉Tdpit集成环境和调试器的使用。
实验内容及说明
一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。
(1) 显示单个字符输出
入口:AH=02H
调用参数:DL=输出字符
(2) 显示字符串
入口:AH=09H
调用参数:DS:DX=串地址,’$’为结束字符
(3) 键盘输入并回显
入口:AH=01H
返回参数:AL=输出字符
(4) 返回DOS系统
入口:AH=4CH
调用参数:AL=返回码
实验步骤
(1) 运行Tdpit软件,选择文件菜单,点击新建,进入一个源文件编辑界面。根据实验内容的描述编写实验程序。
(2) 使用编译菜单中的编译和链接对实验程序进行汇编、连接。
(3) 使用编译菜单中的运行,运行程序,观察运行结果。
(4) 使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。
(5) 更改数据区中的数据,检查程序的正确性。
程序如下:
DATA
MES
SD
DATA
CODE
SEGMENT ASSUME CS:CODE,DS:DATA SEGMENT DB 'Show a as hex:',0AH,0DH,'$' DB 'a' ENDS
START:MOV AX,DATA
MOV MOV DS,AX DX,OFFSET MES ;显示提示信息 MOV AH,09H
INT 21H
MOV DI,OFFSET SD
MOV AL,DS:[DI]
AND AL,0F0H
SHR AL,4
CMP AL,0AH
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,DS:[DI]
AND AL,0FH
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
;取高4位 ;是否是A以上的数 ;显示字符 ;取低4位 ;显示字符 ;返回DOS
西北工业大学明德学院
实验报告
实验项目 微机原理及应用
班 级 121204
姓 名 田家豪 王辰硕
学 号 121566 121567
指导老师 伍明高
时 间 2015-3-17
实验题目
显示程序实验
实验目的
(1) 掌握在PC机上以十六进制形式显示数据的方法。
(2) 掌握部分DOS功能调用使用方法。
(3) 熟悉Tdpit集成环境和调试器的使用。
实验内容及说明
一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。
(1) 显示单个字符输出
入口:AH=02H
调用参数:DL=输出字符
(2) 显示字符串
入口:AH=09H
调用参数:DS:DX=串地址,’$’为结束字符
(3) 键盘输入并回显
入口:AH=01H
返回参数:AL=输出字符
(4) 返回DOS系统
入口:AH=4CH
调用参数:AL=返回码
实验步骤
(1) 运行Tdpit软件,选择文件菜单,点击新建,进入一个源文件编辑界面。根据实验内容的描述编写实验程序。
(2) 使用编译菜单中的编译和链接对实验程序进行汇编、连接。
(3) 使用编译菜单中的运行,运行程序,观察运行结果。
(4) 使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。
(5) 更改数据区中的数据,检查程序的正确性。
程序如下:
DATA
MES
SD
DATA
CODE
SEGMENT ASSUME CS:CODE,DS:DATA SEGMENT DB 'Show a as hex:',0AH,0DH,'$' DB 'a' ENDS
START:MOV AX,DATA
MOV MOV DS,AX DX,OFFSET MES ;显示提示信息 MOV AH,09H
INT 21H
MOV DI,OFFSET SD
MOV AL,DS:[DI]
AND AL,0F0H
SHR AL,4
CMP AL,0AH
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AL,DS:[DI]
AND AL,0FH
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
;取高4位 ;是否是A以上的数 ;显示字符 ;取低4位 ;显示字符 ;返回DOS