微机原理实验指导.docx
《微机原理实验指导.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导.docx(14页珍藏版)》请在冰豆网上搜索。
![微机原理实验指导.docx](https://file1.bdocx.com/fileroot1/2023-1/5/3c5032cd-f389-4d25-b47b-f36ad0b5d3be/3c5032cd-f389-4d25-b47b-f36ad0b5d3be1.gif)
微机原理实验指导
微机原理实验指导
部门:
xxx
时间:
xxx
整理范文,仅供参考,可下载自行编辑
微机原理实验指导
第一部分 实验的目的和要求
一实验要求
1、实验前作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、
对运行结果的分析等。
2、实验时要遵守实验室的规章制度,爱护实验设备。
要熟悉与实验相关的系统软件<如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。
在程序的调试过程中,有意识地学习及掌握DEBUG程序的各种操作命令,以便掌握程序的调试方法及技巧。
b5E2RGbCAP
3、为了更好地进行管理,要求用硬盘<注:
D盘下)存储程序,以避免文件丢失。
注:
文件名必须完整,源程序要带有后缀.asm。
路径名以及文件名中不能包含汉字,只能使用字符。
4、程序调试完后,须由实验辅导教师在机器上检查运行结果。
5、每个实验完成后,应写出实验报告。
二实验报告规范
1、要求使用学校专用的实验报告纸。
填写的信息包括:
课程名称、实验序号、专业、班级、姓名、同组实验者、实验时间。
2、报告书写要规范,内容言简意赅。
内容应包括:
实验名称、目的、内容、原理、实验步骤、实验记录、数据处理<或原理论证、或实验现象描述、或结构说明等)。
p1EanqFDPw
3、一个实验对应一份实验报告。
三实验的目的
实验目的不仅是为了验证书本理论,更重要的是对实践能力的培养。
其中包括:
实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等。
开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。
DXDiTa9E3d
对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序<或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或部分改变程序加以实现。
RTCrpUDGiT
四实验的评价方式
每次实验的考核结果按优秀、良好、中等、及格和不及格来评价。
1、对实验理解透彻,能够全面、正确、独立地完成实验内容,得出结果,并按时提交准确、完整、规范的实验报告,可评为优秀。
5PCzVD7HxA
2、按照设计任务要求能够顺利地完成任务,得出结果,按时提交较完整的、符合要求的实验报告,可评定为良好。
jLBHrnAILg
3、按照设计要求完成了硬件线路的连接或软件的编程与调试,基本完成了任务要求,提交符合要求的实验报告,可评为中等。
xHAQX74J0X
4、基本完成实验目标,但不够完善,可能有若干小的缺陷,在帮助下能够完成实验,提交实验报告,可评为及格。
LDAYtRyKfE
5、不能完成指定的要求和任务,未提交实验报告的,评为不及格。
五提交报告的时间
16周的上实验课时间
第二部分 实验设备简介
QTH-2008PCI-C开发板是启东市微机应用研究所开发设计的高性能的PCI总线开发平台,采用了PLX公司的PCI9052芯片作为PCI的接口芯片,PCI90XX系列PCI接口芯片其低成本、高性能的特点是举世公认的。
Zzz6ZB2Ltk
一硬件说明
硬件包括两大部分:
PCI接口卡一块,QTH-2008PCI-C实验机。
PCI接口卡主要由PCI9052、93C46、XILINXCPLD9536组成。
PCI9052是PLX公司的PCI90XX系列芯片中的一款从模式桥芯片<其硬件与PCI9050相兼容),93CS46可与PLX公司的开发软件PlxMon联合使用,用户可重新定义总线宽度,IO、MEMORY地址空间,中断方式等。
CPLD中集成了相当简单的逻辑,便于用户重新设计和升级,板上留有烧写CPLD的插座。
与QTH-2008PCI-C实验仪相连可实现硬件接口实验,包括8255、8253、8259等常用芯片的实验。
dvzfvkwMI1
二软件说明
本实验的驱动所采用的软件有三种,分别是Microsoft的VisualC++6.0、VTOOLSD。
所用的驱动程序调试工具是DriverMonitor。
使用这些软件,可以在短期内快速准确的构成驱动程序的框架,便于驱动的编写。
同时调试工具能准确的地了解驱动的运行情况,对驱动进行跟踪,便于修改。
rqyn14ZNXI
第三部分 实验简介
实验一系统认知
一、实验目的:
学习掌握利用QTH-2008PCI连机软件调试汇编程序。
二、实验内容:
程序1:
在数据段中定义5个数,求这5个数的和,并将结果存放到AX寄存器中<或内存SUM中)。
程序2:
从键盘接受任意字符,若是小写则转换为大写输出,否则原样输出。
三、程序清单:
DATASSEGMENT
BUFDB3,4,5,6,7
SUMDB2DUP(?
>
DATASENDS
CODESSEGMENT
ASSUMEDS:
DATAS,CS:
CODES
START:
MOVAX,DATAS
MOVDS,AX;
MOVSI,0
MOVCX,5
MOVAX,0
CLC
AGAIN:
ADDAL,BUF[SI]
ADCAH,0
INCSI
LOOPAGAIN;
MOVSUM,AX
MOVAX,4C00H;
INT21H
CODESENDS
ENDSTART
。
-------------------------------------------------------------------------------------EmxvxOtOco
CODESSEGMENT
ASSUMECS:
CODES
START:
NOP
MOVAH,01H
INT21H。
从键盘接收任意字符放在AL
……
PRINT:
MOVDL,AL
MOVAH,02H
INT21H。
将DL中ASCII码输出至屏幕
JMPSTART
CODESENDS
ENDSTART
四、实验要求:
1、利用实验箱开发软件调试程序。
编辑、链接(LINK>、调试执行(Debug>
2、分析功能。
分析说明例子程序的功能:
完成什么功能?
执行结果是什么?
并对源程序进行标注以及画出源程序流程框图。
3、调试执行。
<具体可参看“Debug命令介绍”文件)
利用DEBUG调试命令进行调试,要求用到:
U<反汇编),R<显示寄存器的内容),R<修改寄存器的内容),D<显示内存单元),E<修改内存单元)命令。
SixE2yXPq5
T(单步执行>,G(设断点执行>和G(连须执行>。
记录下每执行一条T命令
后的运行结果,写在实验报告“调试步骤及结果分析”中。
4、上级操作要熟练。
五、思考:
1、软件调试“四部曲“是什么?
2、执行程序有哪三种方法?
3、该程序完成什么功能?
执行结果是什么?
如何察看原始数据?
如何显示最终结果?
4、MOVAX,DATAS和MOVDS,AX指令执行完后,在DS里送了个什么东西?
具体值是多少?
5、最后两条指令MOVAX,4C00H和INT21H的功能是什么?
6、如何看内存结果单元?
六、特别注意:
1、保存文件:
A、文件→新建
在右边的工作区里输入编辑源程序。
比如,先输入数据段。
B、文件→另存为→在D盘建立目录test→在文件名框输入test1.asm→回车。
<不要用汉字,要用西文字母)6ewMyirQFL
C、继续输入编辑源程序。
第B步特别重要。
比如编辑、宏汇编、链接都做了,那么EXE文件就应该生成了。
进入Debug后,一反汇编,却不是你的程序。
就是这个原因。
因为开发工具有记忆功能。
看一看左边的工程栏,就知道原来还是别人的工程。
kavU42VRUs
2、工具栏图标:
工具栏没有调试用的五个图标,怎么办?
查看→工具栏→调试工具这样就可以了。
3、评价依据:
A、上课前点名+下课前签到。
B、老师来检查你的操作运行:
U+R+R+D+E+T+G
C、回答三个问题。
实验二分支程序设计
一、实验目的:
掌握分支程序设计的方法。
二、实验内容:
程序1:
符号函数SGN程序2:
从键盘输入一个数字<0--9),并在屏幕显示它。
如非数字,则显示字母E。
三、程序清单:
DATASSEGMENT
XVARDW3A2BH
SGNDW?
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVAX,XVAR
CMPAX,0;
JGENEXT1
MINUS:
MOVAX,0FFFFH;
JMPDONE
NEXT1:
JGNEXT2
ZERO:
MOVAX,0;
JMPDONE
NEXT2:
MOVAX,1;
。
--------------------------------------------------------y6v3ALoS89
DONE:
MOVSGN,AX
MOVAX,4C00H
INT21H
CODESENDS
ENDSTART
给变量X一个负数、0或正数,看运算结果。
;--------------------------------------------------------------------------------------------------M2ub6vSTnP
四、实验要求:
4、利用实验箱连机软件调试程序。
5、对源程序进行标注,并画出流程图。
6、利用DEBUG调试方法进行调试,要求用到,U<反汇编),T(单步>,G<断点执行),G(连须执行>,D<显示内存单元),E<修改内存单元)命令,R<显示寄存器的内容)。
记录下每执行一条T命令后的运行结果,写在实验报告“调试步骤及结果分析”中。
0YujCfmUCw
7、用TurboDebugger界面,进行程序的调试。
8、编写程序2的代码,并调试出结果。
五、思考:
1、XVAR是多少位数?
2、MOVAX,XVAR指令中的源操作数和目的操作数分别是什么寻址方式?
可以到Debug中找到这条指令,并分析之。
eUts8ZQVRd
3、本程序里有几个条件转移指令?
实现了几个分支?
4、每个分支后为什么必须有一条无条件转移指令?
5、如何察看原始数据?
如何显示计算结果?
6、根据数据段具体数据,从CMPAX,0指令开始,指出往下执行哪五条指令?
实验三循环程序设计
一、实验目的:
掌握循环程序设计的方法。
二、实验内容:
开始
CX←循环次数
SI←源数地址
DI←目的数地址
AL←第一个数
CX←循环次数-1
SI←指针加一
AL>[Si]?
AL和[SI]交换
循环次数到?
结束
修改地址指针
修改循环次数
存结果
sQsAEJkW5T
程序1:
在数据段以NUMBER为首地址,存放有10个无符号数,求其最大数放到MAX单元中。
数据段的十个数:
01H,11H,22H,33H,44H,55H,66H,77H,88H,99H
程序2:
两个多字节二进制数分别存放在数据段NUMB1和NUMB2为首地址的存储单元中。
求其和,相加的结果存放在以SUM为首址的单元中。
<教材P)GMsIasNXkA
三、程序清单:
DATASSEGMENT
NUMBERDB01H,11H,22H,33H,44H,55H,66H,77H,88H,99HTIrRGchYzg
MAXDB?
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX;
LEASI,NUMBER
LEADI,MAX
MOVCX,10
。
------------------------------------------------------------------7EqZcWLZNX
MOVAL,[SI]
INCSI
DECCX
AGAIN:
CMPAL,[SI]
JANEXT
MOVAL,[SI]
NEXT:
INCSI
LOOPAGAIN
RESULT:
NOP
MOV[DI],AL。
存结果
。
------------------------------------------------------------------lzq7IGf02E
MOVDL,AL
ADDDL,30H
MOVAH,02H
INT21H。
MOVAX,4C00H;
INT21H
CODESENDS
ENDSTART
四、实验要求:
1、利用实验箱开发软件调试程序。
编辑、链接(LINK>、调试执行(Debug>
2、分析功能。
分析说明例子程序的功能:
完成什么功能?
执行结果是什么?
并对源程序进行标注。
3、调试执行。
求出结果,并记录。
4、程序调试通过后,进行变化。
五、思考:
1、循环程序的3+1结构是什么?
2、初始化都做哪些工作?
3、改成求无符号数最小值,如何实现?
结果是多少?
改成求带符号数最大值、最小值呢?
4、初始化指令段能够被执行几次?
善后存结果段呢?
5、程序2有三组数据,用那几个寄存器做数据指针?
实验四基本IO口扩展实验
一实验目的
了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。
二实验内容说明
74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。
zvpgeqJ1hk
74LS273是一种8D触发器,当CLR为高电平且CLK端电平正跳变时,D0——D7端数据被锁存到8D触发器中。
NrpoJac3v1
本实验利用74LS244作为输入口,读取开关状态,并将此状态通过74LS273驱动发光二极管显示出来。
1nowfTG4KI
三实验原理图
四实验步骤
做硬件实验特别注意:
不允许带电插拔
带电插线或者拔线会造成烧芯片、烧板子的严重后果。
1、必须确保在实验箱没有插扁平电缆和没有插电源线的情况下,才能进行连线。
2、线连好后,首先要关掉主机。
并在实验箱没有接电源线的情况下去连接扁平电缆。
3、硬件测试没有通过。
仍然是先关掉主机,再关掉实验箱电源。
在认真检查无误以后,才能改线。
这是实验4和以后的硬件实验必须遵守的三原则。
切记
(1)实验连线:
Ø74LS244的CS——ISA总线接口模块的IOY0。
Y7—Y0——开关K8—K1。
Ø74LS273的CS——ISA总线接口模块的IOY2。
Q7—Q0——发光二极管L8—L1。
Ø该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。
Ø该模块的数据线fjnFLDa5Zo
(2)运行程序:
IO.ASM
(3)拨动开关,观察发光二极管的变化。
扩展I/O口连线图
五源程序IO.ASM
CODESSEGMENT
ASSUMECS:
CODES
START:
MOVDX,分配给74LS244的端口地址
INAL,DX
MOVDX,分配给74LS273的端口地址
OUTDX,AL
JMPSTART
EXIT:
MOVAX,4C00H
INT21H
CODESENDS
ENDSTART
六实验要求
1.希望达到开关拨上、对应灯亮,开关拨下、对应灯灭的效果,应怎样修改软件。
2.实验报告中要求对源程序进行注释。
七关于端口地址的获得
1、获得的方法
方法1:
控制面板→系统→硬件→设备管理器→QTH-2008PCI实验仪→
双击QTH-2008PCI-C→资源→输入/输出范围第二组I/O地址。
方法2:
在开发环境下,WINXP实验程序目录→获取PNP设备配置资源→第二组I/O地址。
<比如C400H)tfnNhnE6e5
2、说明:
则IOY0代表的端口地址为=C400H
同时IOY2代表的端口地址为=C440H。
其余类推。
例:
第二组输入/输出范围为C400-C4FF,意味
IOY0的地址从0C400H开始,对应0C400H~0C41FH。
以此类推:
IOY2的地址从0C440H开始,对应0C440H~0C45FH。
3、硬件测试:
硬件连接好了以后,可以利用开发软件自带的程序测试硬件连好没有。
方法见下图。
4、自己软件:
一旦硬件测试没有通过,立刻想起硬件实验三原则。
若硬件测试通过了,使用自己编写的软件继续调试。
申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。