微机原理实验指导2012new

  • 格式:doc
  • 大小:813.50 KB
  • 文档页数:17

微机原理实验指导第一部分实验的目的和要求一实验要求1、实验前作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。

2、实验时要遵守实验室的规章制度,爱护实验设备。

要熟悉与实验相关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。

在程序的调试过程中,有意识地学习及掌握DEBUG程序的各种操作命令,以便掌握程序的调试方法及技巧。

3、为了更好地进行管理,要求用硬盘(注:D盘下)存储程序,以避免文件丢失。

注:文件名必须完整,源程序要带有后缀 .asm 。

路径名以及文件名中不能包含汉字,只能使用字符。

4、程序调试完后,须由实验辅导教师在机器上检查运行结果。

5、每个实验完成后,应写出实验报告。

二实验报告规范1、要求使用学校专用的实验报告纸。

填写的信息包括:课程名称、实验序号、专业、班级、姓名、同组实验者、实验时间。

2、报告书写要规范,内容言简意赅。

内容应包括:实验名称、目的、内容、原理、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。

3、一个实验对应一份实验报告。

三实验的目的实验目的不仅是为了验证书本理论,更重要的是对实践能力的培养。

其中包括:实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等。

开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。

对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或部分改变程序加以实现。

四实验的评价方式每次实验的考核结果按优秀、良好、中等、及格和不及格来评价。

1、对实验理解透彻,能够全面、正确、独立地完成实验内容,得出结果,并按时提交准确、完整、规范的实验报告,可评为优秀。

2、按照设计任务要求能够顺利地完成任务,得出结果,按时提交较完整的、符合要求的实验报告,可评定为良好。

3、按照设计要求完成了硬件线路的连接或软件的编程与调试,基本完成了任务要求,提交符合要求的实验报告,可评为中等。

4、基本完成实验目标,但不够完善,可能有若干小的缺陷,在帮助下能够完成实验,提交实验报告,可评为及格。

5、不能完成指定的要求和任务,未提交实验报告的,评为不及格。

五提交报告的时间16周的上实验课时间第二部分实验设备简介QTH-2008PCI-C 开发板是启东市微机应用研究所开发设计的高性能的PCI总线开发平台,采用了PLX公司的PCI9052芯片作为PCI的接口芯片,PCI90XX系列PCI接口芯片其低成本、高性能的特点是举世公认的。

一硬件说明硬件包括两大部分:PCI接口卡一块,QTH-2008PCI-C实验机。

PCI接口卡主要由PCI9052、93C46、XILINX CPLD 9536组成。

PCI9052是PLX公司的PCI90XX系列芯片中的一款从模式桥芯片(其硬件与PCI9050相兼容),93CS46(EERPOM)用于存放PCI9052初始化设置信息,在开发板上还提供了一个ISA总线扩展插座,可提供8位和16位的总线宽度。

可与PLX公司的开发软件PlxMon联合使用,用户可重新定义总线宽度,IO、MEMORY地址空间,中断方式等。

CPLD中集成了相当简单的逻辑,便于用户重新设计和升级,板上留有烧写CPLD的插座。

与QTH-2008PCI-C实验仪相连可实现硬件接口实验,包括8255、8253、8259等常用芯片的实验。

二软件说明本实验的驱动所采用的软件有三种,分别是Microsoft 的Visual C++ 6.0、VTOOLSD。

所用的驱动程序调试工具是DriverMonitor。

使用这些软件,可以在短期内快速准确的构成驱动程序的框架,便于驱动的编写。

同时调试工具能准确的地了解驱动的运行情况,对驱动进行跟踪,便于修改。

第三部分实验简介实验一系统认知一、实验目的:学习掌握利用QTH-2008PCI连机软件调试汇编程序。

二、实验内容:程序1:在数据段中定义5个数,求这5个数的和,并将结果存放到AX寄存器中(或内存SUM中)。

程序2:从键盘接受任意字符,若是小写则转换为大写输出,否则原样输出。

三、程序清单:DATAS SEGMENTBUF DB 3 , 4, 5, 6, 7SUM DB 2 DUP(?)DATAS ENDSCODES SEGMENTASSUME DS:DATAS, CS:CODESSTART: MOV AX, DATASMOV DS, AX ;MOV SI, 0MOV CX, 5MOV AX, 0CLCAGAIN: ADD AL, BUF[SI]ADC AH, 0INC SILOOP AGAIN ;MOV SUM ,AXMOV AX,4C00H ;INT 21HCODES ENDSEND START;------------------------------------------------------------------------------------- CODES SEGMENTASSUME CS:CODESSTART: NOPMOV AH,01HINT 21H ; 从键盘接收任意字符放在AL……PRINT: MOV DL,ALMOV AH,02HINT 21H ; 将DL中ASCII码输出至屏幕JMP STARTCODES ENDSEND START四、实验要求:1、利用实验箱开发软件调试程序。

编辑(EDIT)、宏汇编(MASM)、链接(LINK)、调试执行(Debug)2、分析功能。

分析说明例子程序的功能:完成什么功能?执行结果是什么?并对源程序进行标注以及画出源程序流程框图。

3、调试执行。

(具体可参看“Debug命令介绍”文件)利用DEBUG调试命令进行调试,要求用到:U(反汇编),R(显示寄存器的内容),R(修改寄存器的内容),D(显示内存单元),E(修改内存单元)命令。

T(单步执行),G(设断点执行)和G(连须执行)。

记录下每执行一条T命令后的运行结果,写在实验报告“调试步骤及结果分析”中。

4、上级操作要熟练。

五、思考:1、软件调试“四部曲“是什么?2、执行程序有哪三种方法?3、该程序完成什么功能?执行结果是什么?如何察看原始数据?如何显示最终结果?4、MOV AX ,DATAS和MOV DS,AX指令执行完后,在DS里送了个什么东西?具体值是多少?5、最后两条指令MOV AX,4C00H和INT 21H的功能是什么?6、如何看内存结果单元?六、特别注意:1、保存文件:A、文件→新建在右边的工作区里输入编辑源程序。

比如,先输入数据段。

B、文件→另存为→在D盘建立目录test→在文件名框输入test1.asm→回车。

(不要用汉字,要用西文字母)C、继续输入编辑源程序。

第B步特别重要。

比如编辑、宏汇编、链接都做了,那么EXE文件就应该生成了。

进入Debug后,一反汇编,却不是你的程序。

就是这个原因。

因为开发工具有记忆功能。

看一看左边的项目栏,就知道原来还是别人的项目。

2、工具栏图标:工具栏没有调试用的五个图标,怎么办?查看→工具栏→调试工具这样就可以了。

3、评价依据:A、上课前点名+下课前签到。

B、老师来检查你的操作运行:U+R+R+D+E+T+GC、回答三个问题。

实验二分支程序设计一、实验目的:掌握分支程序设计的方法。

二、实验内容:程序1:符号函数SGN(X)的实现。

程序2:从键盘输入一个数字(0--9),并在屏幕显示它。

如非数字,则显示字母E。

三、程序清单:DATAS SEGMENTXV AR DW 3A2BHSGN DW ?DATAS ENDSCODES SEGMENTASSUME CS:CODES, DS:DATASSTART: MOV AX, DATASMOV DS, AXMOV AX, XV ARCMP AX, 0 ;JGE NEXT1MINUS: MOV AX, 0FFFFH ;JMP DONENEXT1: JG NEXT2ZERO: MOV AX, 0 ;JMP DONENEXT2: MOV AX,1 ;;--------------------------------------------------------DONE: MOV SGN, AXMOV AX,4C00HINT 21HCODES ENDSEND START给变量X一个负数、0或正数,看运算结果。

;--------------------------------------------------------------------------------------------------四、实验要求:4、利用实验箱连机软件调试程序。

5、对源程序进行标注,并画出流程图。

6、利用DEBUG调试方法进行调试,要求用到,U(反汇编),T(单步),G(断点执行),G(连须执行),D(显示内存单元),E (修改内存单元)命令,R(显示寄存器的内容)。

记录下每执行一条T命令后的运行结果,写在实验报告“调试步骤及结果分析”中。

7、用Turbo Debugger界面,进行程序的调试。

8、编写程序2的代码,并调试出结果。

五、思考:1、XV AR是多少位数?2、MOV AX, XV AR指令中的源操作数和目的操作数分别是什么寻址方式?可以到Debug中找到这条指令,并分析之。

3、本程序里有几个条件转移指令?实现了几个分支?4、每个分支后为什么必须有一条无条件转移指令?5、如何察看原始数据?如何显示计算结果?6、根据数据段具体数据,从CMP AX, 0 指令开始,指出往下执行哪五条指令?实验三循环程序设计一、实验目的:掌握循环程序设计的方法。

二、实验内容:程序1:在数据段以NUMBER为首地址,存放有10个无符号数,求其最大数放到MAX单元中。

数据段的十个数:01H,11H,22H,33H,44H,55H,66H,77H,88H,99H程序2:两个多字节二进制数分别存放在数据段NUMB1和NUMB2为首地址的存储单元中。

求其和,相加的结果存放在以SUM为首址的单元中。

(教材P )三、程序清单:DATAS SEGMENTNUMBER DB 01H,11H,22H,33H,44H,55H,66H,77H,88H,99HMAX DB ?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART: MOV AX, D ATASMOV DS, AX ;LEA SI, NUMBERLEA DI, MAXMOV CX, 10;------------------------------------------------------------------MOV AL, [SI]INC SIDEC CXAGAIN:CMP AL,[SI]JA NEXTMOV AL,[SI]NEXT: INC SILOOP AGAINRESULT: NOPMOV [DI], AL ;存结果;------------------------------------------------------------------MOV DL, ALADD DL, 30HMOV AH, 02HINT 21H ;MOV AX, 4C00H ;INT 21HCODES ENDSEND START四、实验要求:1、利用实验箱开发软件调试程序。