1 / 54
文档名称:

微机实验报告.doc

格式:doc   大小:820KB   页数:54页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

微机实验报告.doc

上传人:花开一叶 2018/9/23 文件大小:820 KB

下载得到文件列表

微机实验报告.doc

相关文档

文档介绍

文档介绍:实验一显示程序实验
一、实验目的
1. 掌握在PC机上以十六进制形式显示数据的方法;
2. 掌握部分DOS功能调用使用方法;
3. 熟悉Tddebug调试环境和Turbo Debugger的使用。
二、实验所用设备
1. PC微机一台。
三、实验内容
一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能调用(INT 21H)。
(1) 显示单个字符输出
入口:AH=02H
调用参数:DL=输出字符
(2) 显示字符串
入口:AH=09H
调用参数:DS:DX=串地址,’$’为结束字符
(3) 键盘输入并回显
入口:AH=01H
返回参数:AL=输出字符
(4) 返回DOS系统
入口:AH=4CH
调用参数:AL=返回码
四:实验步骤
1. 运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序,本实验显示部分参考实验流程如图1-1示;
2. pile和Link对实验程序进行汇编、连接;
3. 使用Rmrun菜单中的Run,运行程序,观察运行结果;
4. 使用Rmrun菜单中的Debug,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容;
5. 更改数据区中的数据,考察程序的正确性。
流程图:
取出数据至AL

取低四位
加07H
加30H
大于等于0AH?
取高四位
送屏幕显示
N
Y
送屏幕显示
加30H
加07H
大于等于0AH?
Y
N
程序清单:
DATA SEGMENT
MYSTR DB 'show a as hex:',0AH,0DH,'$'
SD DB 'a'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX ,DATA
MOV DS ,AX
LEA DX,MYSTR
MOV AH,09H ;显示提示符
INT 21H
LEA SI, SD
MOV AL ,[SI]
AND AL ,0F0H ;高四位转换成十六进制数的ASC码
SHR AL ,4
CMP AL,0AH
JB C1
ADD AL ,07H
C1: ADD AL, 30H
MOV DL,AL ;显示高位
MOV AH,02H
INT 21H
MOV AL ,[SI]
AND AL,0FH ;低四位转换成十六进制数的ASC码
CMP AL,0AH
JB C2
ADD AL ,07H
C2: ADD AL,30H
MOV DL,AL ;显示低位
MOV AH,02H
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
运行结果:
实验二数据传送实验
一、实验目的
1. 熟悉Tddebug调试环境和Turbo Debugger的使用;
2. 掌握与数据有关的不同寻址方式。
二、实验所用设备
1. PC微机一台。
三、实验内容
将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
四:流程图
取源串至DS:SI
取源串至ES:DI
置传送次数初值
开始传送
SI=SI-1,DI=DI-1
N
CX=0?
目的串送屏幕显示
Y
五:程序清单
DSDATA SEGMENT
STR1 DB 'HELLO,WORLD!','$'
DSDATA ENDS
ESDATA SEGMENT
STR2 DB 13 DUP(?)
ESDATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DSDATA,ES:ESDATA
START: MOV AX,DSDATA
MOV DS,AX
LEA SI, STR1
MOV AX,ESDATA
MOV ES,AX
LEA DI ,STR2
MOV CX ,13
NEXT: MOV AL,[SI] ;开始传送
MOV ES:[DI],AL
INC SI
INC DI
DEC CX
JNZ NEXT
MOV CX,ES ;显示附加数据段中的目标字符串
MOV DS ,CX
LEA DX,STR2
MOV AH,09H
INT 21H
MOV AX,4C00H ;返回DOS
IN