东南大学微机实验报告一课案

上传人:jiups****uk12 文档编号:90745178 上传时间:2019-06-15 格式:DOC 页数:13 大小:809.52KB
返回 下载 相关 举报
东南大学微机实验报告一课案_第1页
第1页 / 共13页
东南大学微机实验报告一课案_第2页
第2页 / 共13页
东南大学微机实验报告一课案_第3页
第3页 / 共13页
东南大学微机实验报告一课案_第4页
第4页 / 共13页
东南大学微机实验报告一课案_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《东南大学微机实验报告一课案》由会员分享,可在线阅读,更多相关《东南大学微机实验报告一课案(13页珍藏版)》请在金锄头文库上搜索。

1、微机实验及课程设计实验报告 学号 东南大学微机实验及课程设计实验报告实验一指令与汇编语言基础实验二 汇编语言程序设计姓 名: 学 号: 专 业: 实 验 室: 计算机硬件技术 实验时间: 2016年04月06日 报告时间: 2016年04月15日评定成绩: 审阅教师: 一. 实验目的与内容实验一指令与汇编语言基础一、实验目的1)了解命令行操作基本方式和基本命令,掌握 PC 环境下命令行方式的特点;2)掌握汇编语言程序指令编辑、宏汇编、连接、运行基本概念;3)熟练掌握动态调试程序 TD 的常用命令和窗口功能,学会用 TD 调试程,修改环境;4)学会利用 DEBUG 或 TD 检查认识指令功能的正

2、确方法二、实验内容(1) 掌握进入全屏命令行方式、修改环境的方法;(2) 确定源程序的存放目录,构建个人实验环境(3) 建立、编辑汇编源程序,选择程序样本,构建典型的汇编程序框架,包括基本的数据段、堆栈段和代码段,编写程序实现如下功能:在 data1 和 data2 两个存储单元中分别存放两个十六进制数,将它们相加后所得值存入 data3 中。(4) 用汇编工具(MASM/TASM.EXE)汇编源程序产生 OBJ 目标文件将所要编译的源程序文件(add.asm)放到带汇编工具的文件夹中,在全屏命令行模式下,进入该文件夹,输入 tasm add.asm,回车后即可编译产生 OBJ 目标文件。(5

3、) 用链接程序(LINK/TLINK.EXE)产生 EXE 可执行文件产生 OBJ 目标文件后,继续输入:tlink add.obj,回车后即可产生 EXE 可执行文件。(6) 用调试工具软件(TD.EXE/D)调试执行程序 在 Windows 中启动 TDa. 仅启动 TD 而不载入要调试的程序双击 TD.EXE 文件名,Windows 就会打开一个 DOS 窗口并启动 TD。启动 TD 后会显示一个版权对话框,这时按回车键即可关掉该对话框。b. 启动 TD 并同时载入要调试的程序把要调试的可执行文件拖到 TD.EXE 文件名上,Windows 就会打开一个 DOS 窗口并启动 TD,然后

4、TD 会把该可执行文件自动载入内存供用户调试。若建立可执行文件时未生成符号名表,TD 启动后会显示“Program has no symbol table”的提示窗口,这时按回车键即可关掉该窗口。 观察 CPU 寄存器、存储器环境TD 启动后呈现的是一个具有窗口形式的用户界面,见图 3.1-2,称为 CPU 窗口。 单步、断点运行,观察中间结果,完成正常执行TD 功能键 F7 为跟踪进入(对 CALL 指令将跟踪进入子程序) ,F8 为单步跟踪(对 CALL 指令将执行完子程序返回后才停下),F2 为在当前光标处设置/清除断点。通过单步,断点运行中观察数据区、各个寄存器值的变化,以验证程序运行

5、是否正确。 修改当前运行环境,直接编写程序片断,验证指令功能a. 修改寄存器(AX、BX、CX、DX、SI、DI、BP、SP),并观察;修改段寄存器。b. 修改存储器,并指定不同存储段。c. 修改 CS:IP,单步运行指定指令(F7 或 F8),观察指令运行结果。d. 将光标放置在 TD 窗口的代码区右击,可显示代码区的局部菜单,选择相应功能进行操作。 重点解决段存储结构和数据变量的定义与访问访问数据段中具体位置的值时,可将光标放置在数据区,右击产生数据区菜单。实验二 汇编语言程序设计一、实验目的1)进一步熟悉汇编语言程序的编辑、宏汇编、链接、运行基本概念;2)熟练掌握动态调试程序 TD/DE

6、BUG 的常用命令或窗口功能,学会用 TD/DEBUG 调试程序,修改数据和寄存器等环境;3)熟悉掌握汇编语言程序的典型数据结构设计、典型程序流控制方法,了解 DOS/BIOS 功能调用的基本方法。二、实验内容(1)编写程序实现如下功能: 从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来。 从键盘输入在 065535 之间的十进制数,将其转换为十六进制数并在屏幕中显示出来,要求判断输入字符串是否为在 065535 之间的十进制数。(2)复习 TD 各种操作,并用 DEBUG 调试程序,学会基本命令操作,并

7、通过单步、设置断点等方法观察中间结果,完成正常运行。命令行方式下直接键入 debug myfile.exe 回车(myfile 为待调试可执行程序),进入调试方式(显示-),键入 H 回车显示全部命令、格式和功能。常用命令有:U(反汇编)、A(汇编输入指令程序)、R(寄存器显示/修改)、I(端口输入)、O(端口输出)、D(显示数据)、E(修改数据)。除资源修改管理功能外,重点应用 T(单步)、Tn(执行n 步)、 P(过程/指令)、G(从当前 CS:IP执行到断点 )或 G= 1 2(从 1 执行到 2 断点)调试实验程序。二. 基本实验原理 (1)运行汇编程序必备的软件环境:DOS操作系统,

8、汇编软件系统。汇编系统盘应包含如下文件: MASM(TASM) 宏汇编程序文件 LINK(TLINK) 连接程序文件 EDIT 文本编辑程序 用户通过屏幕编辑程序EDIT(各功能)键入源程序,检查无误,可将源程序存到汇编系统盘上,该程序的扩展名为ASM。 (2) MASM汇编程序:格式、宏、模块OBJ: 浮动汇编(相对关系)、段、变量待定位 执行宏汇编程序MASM-生成目标文件.OBJ,辅助文件LST,CRF。 用汇编语言编写的源程序必须是一个完整的源程序,才能经过宏汇编程序MASM的汇编,生成一个目标程序。为了完成汇编任务,汇编程序一般采用两遍扫描的方法,第一遍扫描源程序产生符号表、处理伪指

9、令等,第二遍扫描产生机器指令代码、确定数据等。 OBJ将源程序的操作码部分变为机器码,但地址操作数是可浮动的相对地址,而不是实际地址,因此需经LINK连接文件进行连接才能形成可执行文件。 LST是列表文件把源程序和目标程序列表,以供检查程序用。CRF是交叉索引文件,对源程序所用的各种符号进行前后对照的文件三. 方案实现与测试实验一指令与汇编语言基础1)将源程序add.asm放入带汇编工具的文件夹中,即含有汇编工具(MASM.EXE)和链接工具(LINK.EXE)的文件夹。全屏启动命令行模式,进入上述文件夹输入:MASM ADD.ASM回车后编译产生ADD.OBJ文件再输入:LINK ADD.O

10、BJ回车后链接产生ADD.EXE文件2)debug的使用在debug下,输入-r、-t、-d等命令-r可以查看寄存器状态,-t为单步调试(进入CALL,而-p不进入),-d可以查看存储器-u可以查看代码段,-a可以修改代码使用push和pop指令,观察堆栈变化Push前Push后,SP-2;Pop后,SP+23)中断指令,设置中断向量并编译简单中断服务程序。在0000:0200处为INT 80H写中断向量CS:IP,在该处定义的CS:IP处写中断程序,以IRET为结束。然后在主程序中使用,利用DEBUG单步查看各寄存器的数值变化。实验二 汇编语言程序设计1)实现将字符串中小写字母转换为大写字母

11、主要实验步骤:编译链接:运行结果如下debug调试:输入DDS:0后,可以看到该地址存储的是64 05 6A 73 64 67 64,与原理相符。DS:DX为存放键入字符串的缓冲区首地址,其中第一个字节需要初始化,为用户定义的缓冲区长度。当完成字符串输入并存储后,第二个字节为键入的字符串的个数,图中显示05,即输入了5个字符,从第三个字节开始存放键入的字符串,并在最后一个字节为0DH作为字符串的结束。程序已将第一个字符j转换成J并显示,通过循环达到将全部小写字母转换成大写字母。判断是否继续。2)实现十进制与十六进制之间的转换编译时出现错误,经过修改后编译正确在原汇编程序中发现shr dl,4出

12、现错误,移位时,系统要求次数必须放在寄存器cl中;且xor ax,ax xor bx,bx xor dx,dx部分没有对cx进行清零,导致单步时出现错误;在判断是否继续时,只能识别y而无法识别Y;分别对其进行相应修改。 该程序运行没有问题。修改后的程序最终运行结果如下图所示四提高与创新研究1、什么是单步运行?两种单步运行有什么不同?单步运行是指根据代码每次执行一步,有Trace into(F7)和Step over(F8)两种,其中Trace into在执行CALL指令时将跟踪进入子程序,即对于CALL指令中的子程序也执行单步运行。而Step over在执行CALL指令时将直接执行完子程序,即

13、对于CALL指令中的子程序并不执行单步运行。2、如何合理地利用断点技术?当编写的程序没有代码上的错误,但有逻辑上的错误时可以通过断点技术来检查程序的编写,监视程序的逻辑错误出现在哪个位置。可以进行分块分区域进行调试,只在断点前执行,而不必利用单步执行检查,适用于较长的程序的整体调试。五分析与总结这几次实验中,我了解了TD和DEBUG的调试环境,掌握了TD和DEBUG的基本使用。学会对程序的单步运行以及在各指令执行后查看各个寄存器数值的变化情况。并参考书本,实际编写一些代码,对各个指令功能进行了验证。学会了运行汇编代码,对.ASM文件进行编译、链接、运行及调试,利用DEBUG的单步调试发现.ASM文件的一些错误并进行修改。12

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号