最新东南大学微机实验报告.docx
- 文档编号:24776331
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:14
- 大小:228.16KB
最新东南大学微机实验报告.docx
《最新东南大学微机实验报告.docx》由会员分享,可在线阅读,更多相关《最新东南大学微机实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
最新东南大学微机实验报告
东南大学
《微机实验及课程设计》
实验报告
实验一指令与汇编语言基础
实验二汇编语言程序设计
姓名:
柳佳男学号:
08010424
专业:
自动化实验室:
计算机硬件技术
实验时间:
2012年04月10日报告时间:
2012年04月16日
评定成绩:
审阅教师:
一.实验目的与内容
实验目的
1、了解命令行操作基本方式和基本命令,掌握PC环境下命令行方式的特点。
2、掌握汇编语言程序指令编辑基本框架程序,完成宏汇编、连接操作,实现运行;
3、熟练掌握动态调试程序TD/DEBUG常用命令或窗口功能,学会动态调试程序的基本方法。
4、利用框架程序检验8086/8088汇编语言(MASM/TASM)的各种指令性与指示性操作功能和语法,并了解它们与目标代码之间的关系;检验典型DOS/BIOS功能调用,实现简单的人机交互功能。
基本实验内容和要求(重点:
段存储结构和数据变量)
(1)掌握进入全屏命令行方式、修改环境的两种方法
(2)确定源程序的存放目录,构建个人实验环境;
(3)建立、编辑汇编源程序,构建典型的汇编程序框架;
(4)用汇编工具(MASM/TASM.EXE)汇编源程序产生OBJ目标文件;
(5)用链接程序(LINK/TLINK.EXE)产生EXE可执行文件;
(6)用调试工具软件(Debug.exe/TD.EXE)调试执行程序;
1)观察CPU寄存器、存储器环境;
2)单步、断点运行,观察中间结果;
3)完成正常执行;
4)修改中间运行环境(寄存器,存储器);
5)直接编写程序片断,验证指令功能
实验内容一:
编辑(EDIT):
基本的汇编语言格式:
段,变量,过程;汇编(MASM):
产生.LST文件;链接(LINK).MAP文件(调试观察源-目标关系)
多模块程序,.LST,.MAP文件(调试观察源-目标关系)
DOS/BIOS调用功能(I/O)调试验证
INT21H/INT16H
TASM/ziTLINK/vTD带符号(Symble)调试(观察源-目标关系)
实验内容二:
1.输入字符串,作大小写变换,显示结果
2.输入十进制数N(<=65535),转换成十六进制数,显示在屏幕上(有检错功能)
3.改写成子程序结构
4.N<=12时用递归算法实现阶乘;
5.采用双模块结构;采用软件中断调用(INT80H,用DEBUG跟踪调试)
二.基本实验原理
运行汇编程序必备的软件环境:
DOS操作系统;汇编软件系统。
汇编系统盘应包含如下文件:
MASM宏汇编程序文件(TASM)
LINK连接程序文件(TLINK)
CREF索引程序文件(也可不用)
EDIT文本编辑程序(或PE等文本编辑程序)
用户通过屏幕编辑程序EDIT(各功能)键入源程序,检查无误,可将源程序存到汇编系统盘上,该程序的扩展名为·ASM。
(XXX.ASM)
(2)MASM汇编程序:
格式、宏、模块⎝OBJ:
浮动汇编(相对关系)、段、变量待定位
执行宏汇编程序MASM----生成目标文件.OBJ,辅助文件LST,CRF(可选)
用汇编语言编写的源程序必须是一个完整的源程序,才能经过宏汇编程序MASM的汇编,生成一个目标程序。
为了完成汇编任务,汇编程序一般采用两遍扫描的方法,第一遍扫描源程序产生符号表、处理伪指令等,第二遍扫描产生机器指令代码、确定数据等。
OBJ将源程序的操作码部分变为机器码,但地址操作数是可浮动的相对地址,而不是实际地址,因此需经LINK连接文件进行连接才能形成可执行文件。
三.方案实现与测试
实验一:
以string程序为例
1)汇编过程
使用edit编辑文件
在DOS状态下,键入MASM则调入宏汇编程序,屏幕显示与操作如下:
string为源程序名(string.asm),方括号中是机器规定的默认文件名,默认只生成(string.obj)文件。
如果用户需要列表文件和交叉索引文件,则可在[NUL.LST]和[NUL.CRF]后键入文件名即可。
同样,按照下图中的方法,可以生成(string.map)文件
列表文件(.LST)是通过汇编程序(MASM)产生的,可以在DOS状态下用TYPE
命令显示或打印该文件,以便分析调试源程序。
列表程序由三部分组成:
(1)源程序和目标程序清单
(2)段信息汇总表
(3)符号汇总表
3)多模块程序
以string1和string2为例
文件
publicinput
extrndisp:
far
datasegment
inputdb100,100dup(0)
string1db0dh,0ah,'pleaseinputyourstrings',0dh,0ah,'$'
string2db0dh,0ah,'thestringsyouinputare:
',0dh,0ah,'$'
string3db0dh,0ah,'Doyouwanttocontinue(y/n):
',0dh,0ah,'$'
dataends
stackssegmentstack
db256dup(0)
stacksends
codesegment
assumecs:
code,ds:
data,ss:
stacks
mainprocfar
start:
movax,data
movds,ax
movax,stacks
movss,ax
loop1:
movdx,offsetstring1
movah,09h
int21h
movdx,offsetinput
movah,0ah
int21h
movdx,offsetstring2
movah,09h
int21h
calldisp
movdx,offsetstring3
movah,09h
int21h
movah,1
int21h
cmpal,'y'
jzloop1
movah,4ch
int21h
mainendp
codeends
endstart
文件
extrninput:
byte
publicdisp
codesegment
assumecs:
code
dispprocfar
start:
xorcx,cx
movcl,input[1]
movsi,2
again:
movdl,input[si]
cmpdl,61h
jbnext
cmpdl,7ah
janext
subdl,20h
next:
movah,02h
int21h
incsi
loopagain
ret
dispendp
codeends
endstart
将string1.asm和string2.asm汇编后链接
用type语句来查看string.map中的内容.
可以看出,由连接程序LINK产生的扩展名为.MAP文件,它实际上是连接程序的列表文件,它给出了每个段的地址分配情况及长度。
而且由于本例是多模块结构,实际上使用了两个代码段,因而图中显示了两个CODE段的地址范围,但是入口地址entrypoint只有一个。
4、DOS/BIOS调用功能(I/O)调试验证
用TD打开string.1文件,F7单步调试,观察执行int21H中断时各寄存器的内容变化情况。
5、TASM/ziTLINK/vTD带符号(Symble)调试(观察源-目标关系)
实验二
1.输入字符串,作大小写变换,显示结果
相应的程序及其调试已在实验一中完成,运行结果为
结果与预期相符.
2.输入十进制数N(<=65535),转换成十六进制数,显示在屏幕上(有检错功能)
3.改写成子程序结构
程序片段:
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
运行结果:
用debug调试程序
4.N<=12时用递归算法实现阶乘;
MOVAX,N
CALLPCALC
MOVRESULT,AX
PCALCPROC
CMPAX,1;递归函数
JNZPCALC1
RET
PCALCENDP
PCALC1:
PUSHAX
DECAX
CALLPCALC;递归调用
POPBX
MULBX
RET
PCALCENDP
Debug单步调试程序,并且不断通过-d来观察栈顶的变化情况.发现在递归调用的过程中,IP的后续内容被不断压入栈中,递归返回时又被释放出来.
运行结果:
我们认为:
创业是一个整合的过程,它需要合作、互助。
大学生创业“独木难支”。
在知识经济时代,事业的成功来自于合作,团队精神。
创业更能培养了我们的团队精神。
我们一个集体的智慧、力量一定能够展示我们当代大学生的耐心.勇气和坚强的毅力。
能够努力克服自身的弱点,取得创业的成功。
(2)缺乏经营经验四.提高与创新研究
通过C++编译器,将高级语言转化为汇编语言
1、你一个月的零用钱大约是多少?
程序1hello.c
#include
300-400元1632%intmain()
{
printf("Hello,world\n");
return0;
是□否□}
§8-2购物环境与消费行为2004年3月20日按照如下操作,可以生成含有二进制、汇编和高级语言的.cod文件
(三)上海的文化对饰品市场的影响五.分析与总结
通过这几次试验,我基本上了解并掌握了如何完成宏汇编、连接操作,实现运行,以及用debug和TD进行程序的调试.通过TD和命令行调试,可以看到CPU寄存器和存储器的内容和地址等,也可以对其进行修改.
在编写调试程序的过程中出现了许多问题,
(4)创新能力薄弱例如在十进制转化成十六进制的试验中,出现了如下错误
2、你大部分的零用钱用于何处?
3.www。
oh/ov。
com/teach/student/shougong/发现是‘shrdl,4‘这条语句出现错误,经分析,原来当移多位时,指令系统要求以为次数必须放在CL寄存器中。
原程序只要改为’movcl,4shrdl,cl‘即可。
在自己编写程序的过程中,加强了我对许多知识点的认识和了解,从中受益匪浅。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 东南大学 微机 实验 报告