实验报告样本.docx

上传人:b****1 文档编号:13409469 上传时间:2023-06-13 格式:DOCX 页数:17 大小:434KB
下载 相关 举报
实验报告样本.docx_第1页
第1页 / 共17页
实验报告样本.docx_第2页
第2页 / 共17页
实验报告样本.docx_第3页
第3页 / 共17页
实验报告样本.docx_第4页
第4页 / 共17页
实验报告样本.docx_第5页
第5页 / 共17页
实验报告样本.docx_第6页
第6页 / 共17页
实验报告样本.docx_第7页
第7页 / 共17页
实验报告样本.docx_第8页
第8页 / 共17页
实验报告样本.docx_第9页
第9页 / 共17页
实验报告样本.docx_第10页
第10页 / 共17页
实验报告样本.docx_第11页
第11页 / 共17页
实验报告样本.docx_第12页
第12页 / 共17页
实验报告样本.docx_第13页
第13页 / 共17页
实验报告样本.docx_第14页
第14页 / 共17页
实验报告样本.docx_第15页
第15页 / 共17页
实验报告样本.docx_第16页
第16页 / 共17页
实验报告样本.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验报告样本.docx

《实验报告样本.docx》由会员分享,可在线阅读,更多相关《实验报告样本.docx(17页珍藏版)》请在冰点文库上搜索。

实验报告样本.docx

实验报告样本

(此文档为word格式,下载后您可任意编辑修改!

 

东南大学

 

《微机系统与接口(含实验)》

实验报告

 

实验一指令与汇编语言基础

实验二汇编语言程序设计

 

姓名:

贺陈锴学号:

专业:

电类强化2班实验室:

计算机硬件技术

实验时间:

2015年04月6日报告时间:

2015年04月12日

评定成绩:

审阅教师:

 

一.实验目的与内容

实验目的:

1、了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点。

2、掌握汇编语言程序指令编辑基本框架程序,完成宏汇编、连接操作,实现运行;

3、熟练掌握动态调试程序TDDEBUG常用命令或窗口功能,学会动态调试程序的基本方法。

4、利用框架程序检验80868088汇编语言(MASMTASM)的各种指令性与指示性操作功能和语法,并了解它们与目标代码之间的关系;检验典型DOSBIOS功能调用,实现简单的人机交互功能。

基本实验内容:

(1)掌握进入全屏命令行方式、修改环境的两种方法

(2)确定源程序的存放目录,构建个人实验环境;

(3)建立、编辑汇编源程序,构建典型的汇编程序框架;

(4)用汇编工具(MASMTASM.EXE)汇编源程序产生OBJ目标文件;

(5)用链接程序(LINKTLINK.EXE)产生EXE可执行文件;

(6)用调试工具软件(Debug.exeTD.EXE)调试执行程序;

1)观察CPU寄存器、存储器环境;

2)单步、断点运行,观察中间结果;

3)完成正常执行;

4)修改中间运行环境(寄存器,存储器);

5)直接编写程序片断,验证指令功能

实验内容一:

编辑(EDIT):

基本的汇编语言格式:

段,变量,过程;汇编(MASM):

产生.LST文件;链接(LINK).MAP文件(调试观察源-目标关系)

多模块程序,.LST,.MAP文件(调试观察源-目标关系)

DOSBIOS调用功能(IO)调试验证

INT21HINT16H

TASMziTLINKvTD带符号(Symble)调试(观察源-目标关系)

实验内容二:

1.输入字符串,作大小写变换,显示结果

2.输入十进制数N(<=65535),转换成十六进制数,显示在屏幕上(有检错功能)

3.改写成子程序结构

4.N<=12时用递归算法实现阶乘;

5.采用双模块结构;采用软件中断调用(INT80H,用DEBUG跟踪调试)

二.基本实验原理

运行汇编程序必备的软件环境:

DOS操作系统;汇编软件系统。

汇编系统盘应包含如下文件:

MASM宏汇编程序文件(TASM)

LINK连接程序文件(TLINK)

CREF索引程序文件(也可不用)

EDIT文本编辑程序(或PE等文本编辑程序)

用户通过屏幕编辑程序EDIT(各功能)键入源程序,检查无误,可将源程序存到汇编系统盘上,该程序的扩展名为·ASM。

(XXX.ASM)

MASM汇编程序:

格式、宏、模块OBJ:

浮动汇编(相对关系)、段、变量待定位

执行宏汇编程序MASM----生成目标文件.OBJ,辅助文件LST,CRF(可选)

用汇编语言编写的源程序必须是一个完整的源程序,才能经过宏汇编程序MASM的汇编,生成一个目标程序。

为了完成汇编任务,汇编程序一般采用两遍扫描的方法,第一遍扫描源程序产生符号表、处理伪指令等,第二遍扫描产生机器指令代码、确定数据等。

OBJ将源程序的操作码部分变为机器码,但地址操作数是可浮动的相对地址,而不是实际地址,因此需经LINK连接文件进行连接才能形成可执行文件。

8086功能结构图

三.方案实现与测试

实验一:

调试num程序

1、使用edit编辑asm文件:

键入MASM则调入宏汇编程序:

num为源程序名(num.asm),方括号中是机器规定的默认文件名,默认只生成(num.obj)文件。

如果用户需要列表文件(.LST)和交叉索引文件(.CRF),则可在[NUL.LST]和[NUL.CRF]后键入文件名。

同样,按照下图中的方法,通过连接(LINK),可以生成(num.map)文件:

列表文件(.LST)是通过汇编程序(MASM)产生的,可以在DOS状态下用TYPE命令显示或打印该文件,

以便分析调试源程序。

列表程序由三部分组成:

(1)源程序和目标程序清单

(2)段信息汇总表

(3)符号汇总表

2、多模块程序

将以上的num和一个add.asm汇编后进行连接,并用type查看numadd.map中的内容:

可以看出,由连接程序LINK产生的扩展名为.MAP文件,它实际上是连接程序的列表文件,它给出了每个段的地址分配情况及长度。

而且由于本例是多模块结构,实际上使用了两个代码段,因而图中显示了两个CODE段的地址范围,但是入口地址entrypoint只有一个。

4、3、DOSBIOS调用功能(IO)调试验证

用TD打开num文件,F7单步调试,观察执行int21h中断时各寄存器的内容变化情况:

5、TASMziTLINKvTD带符号(Symble)调试(观察源-目标关系)

实验二:

1、大小写转换运行结果为:

正确

2、输入十进制数N(<=65535),转换成十六进制数,显示在屏幕上(有检错功能):

正确

2、改写成子程序结构:

loop1:

movoutput,0000h

movdx,offsetstring1

movah,09h

int21h

movdx,offsetinput

movah,0ah

int21h

movright,1

callchange

cmpright,0

jzerror

movdx,offsetstring2

movah,09h

int21h

movax,output

movdl,ah

shrdl,4

calldisp

movdl,ah

anddl,0fh

calldisp

movdl,al

shrdl,4

calldisp

movdl,al

anddl,0fh

calldisp

jmpgo

4.N<=12时用递归算法实现阶乘

代码片段如下:

over:

addoutput,bx

cmpoutput,0

jberror1

cmpoutput,0Ch

jaerror1

MOVAX,OUTPUT

CALLPCALC

MOVRESULT,AX

MOVOUTPUT,AX

RET

PCALC:

CMPAX,1

JNZPCALC1

RET

PCALC1:

PUSHAX

DECAX

CALLPCALC

POPBX

MULBX

RET

error1:

movright,0

changeendp

代码中PCALC段位递归函数和递归调用

四.提高与创新研究

1、修改string.asm使得实现大写转换成小写,小写也会转换成大写

相应代码段:

即增加一次判断,改变小写。

运行结果:

正确

2、通过C++编译器,将高级语言转化为汇编语言

下段C++代码:

通过编译器:

生成.cod文件:

五.分析与总结

通过实验我们掌握了如何进行宏汇编、连接操作,实现运行,以及用debug和TD进行程序的调试.,并且我们得以运用一些基础的汇编语言知识编辑简单代码。

这对我们以后利用汇编语言进行工程设计及实验具有重要意义。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2