《微机原理及汇编语言》实验指导书.doc_第1页
《微机原理及汇编语言》实验指导书.doc_第2页
《微机原理及汇编语言》实验指导书.doc_第3页
《微机原理及汇编语言》实验指导书.doc_第4页
《微机原理及汇编语言》实验指导书.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理和汇编语言实验指导书信息与通信工程学院电气工程系目 录实验须知3实验一 数据求和实验 .4实验二 循环与分支程序设计实验.8实验三 中断程序设计实验 .12实验四 屏幕显示程序设计实验.14实验五 文件操作程序设计实验.16第一部分 实验须知1、预习要求实验前认真阅读实验教程中有关内容,明确实验目的和实验任务。每次实验前应有预习报告,未预习者不允许参加实验。预习报告中:对软件实验,要求画出程序流程图,编好上机程序;对硬件实验,要求画出实验线路图,拟定实验步骤,画出程序流程图,编好上机程序。2、实验要求实验是学习“微机原理及汇编语言程序”这门课程的重要环节,实验课请勿迟到,缺席。爱护设备,保持清洁,不随意更换设备。认真完成实验任务,实验结果经教师检查,教师对实验内容提问,对完成者做记录。做硬件实验时,注意断电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行,严禁带电操作,并注意防止导线堵塞插孔。发生事故,应立即切断电源,并马上向教师报告,检查原因,吸取教训。实验完毕,请整理实验设备,再离开实验室。3、报告要求每次实验后,应递交一份实验报告,报告中应包括下列内容:(1)实验名称、实验人姓名、学号、班级、所用的设备号。(2)实验目的、任务。(3)各任务程序流程图、程序清单(应加适量注释)。(4)硬件实验应画出各任务的完整电路图,包括PC总线与实验用到芯片间全部电路。(5)记录和分析实验结果。(6)根据实验目的认真做小结。第二部分 实验实验一 数据求和实验一、实验目的1、学习使用DEBUG程序的各种命令。2、了解计算机取指令、执行指令特别是算术运算指令的工作过程。3、掌握用DEBUG调试程序的方法。二、实验内容1、参照教材中有关内容,掌握DEBUG程序的各种操作命令,重点为R寄存器内容检查命令D存储器内容检查命令A汇编命令U反汇编命令T跟踪及单步执行命令P单步执行命令,跳过子程序G全速执行程序命令。2、用命令A逐条汇编下列指令,根据结果判断输入指令的正误并说明原因。ROR AX,8LEA DI,AXMOV DS,2010PUSH ALOUT 900,ALMOV BX,03、用命令D查看DS:20022F和F000:20022F两内存块内容,用命令F将字符“A”分别填入这两个内存块,比较填入前后结果,了解可读写内存RAM和只读内存ROM的区别。4、用A命令汇编一条INT 1C指令,用命令T单步执行该指令,比较指令执行前后CS和IP、堆栈指针SP及堆栈内容变化情况,了解什么是中断向量表,中断向量和中断子程,掌握中断指令的执行过程。5、利用T,P,G命令,执行下列指令段,注意它们的不同之处。MOV DI,300MOV SI,400MOV CX,3CLDREP MOVSBINT 3MOV AH,2MOV DL,41INT 21INT 3先在CS:200处汇编一条RET指令,再在CS:100处汇编。MOV BX,200CALL BXINT 3然后从MOV BX,200处开始执行。6、用命令A汇编下列程序段,并将程序写到硬盘上,然后调试程序段,观察程序段能否完成指定功能,若不能,说明原因,并修改程序。完成将DS:2000开始的5个字节内存内容相加,并把相加的结果存放在DS2005内存单元中。下面为程序范例MOV CX,5MOV AL,0MOV BX,2000nest: ADD AL,BXINC BXDEC CXLOOP nestMOV BX,ALINT 37、以双重循环来实现延时,然后再给AX赋值。MOV AX,0again1:MOV SI,3again2:MOV DI,3DEC DIJNZ again2DEC SIJNZ again1MOV AX,100INT 3进入DEBUG后,首先用命令R查看当前DS内容,记录此值,假设为X。在DEBUG下汇编、调试完成下列功能的程序。将内容F000:2000H起30H个字数据传送到内存X:1000H开始处。测试内存X:300H开始的10H个字节数据,计算其中正数、负数、0的个数,并将结果分别存放在X:400H开始的三个内存单元中。三、实验设备及仪器 PC兼容计算机及系统软件四、实验说明(原理)在DEBUG下,用户可对所有寄存器、RAM内存随意查看和修改,但由于对DOS操作系统在内存中存放情况不了解,可能会将存放有操作系统程序的内存内容破坏,从而可能引起系统运行异常,往往是出现死机现象,故建议使用DOS分配给用户的内存可用区,其低端地址是刚进入DEBUG时,用命令R查看到的CS:IP。涉及到修改内存的命令有A,E,F,M,L等。初学者在使用DEBUG命令修改内存或执行程序时,由于多种原因,出现死机是较经常的现象,可按RESET复位按钮,重新启动系统。用连续执行命令G执行程序时,注意给出执行的首地址,或查看当前CS和IP值是否为要执行程序段的首地址,并注意查看执行的指令流程中有无返回DEBUG功能的程序段,如指令INT 20T或断点设置INT3,否则发出命令后,很容易出现死机,原因是如无程序段使系统返回命令接受状态,CPU将不断到内存取指令、执行指令,使作户失去对系统的控制,出现死机。为避免这种情况,可在用户程序段的最后加上一条INT 20H指令,或用断点方式执行。避免出现死机。在命令A下汇编各条指令,对于错误的指令,DEBUG指令出其错误位置,对于正确的指令,将其汇编到相应内存,据此可判断指令正误,而具体原因需自己分析。关于任务3,8086/8088 CPU在开机后执行的第一条指令在内存FFFF:0H开始处。由于可读写内存RAM的内容可修改,而只读内存ROM的内容不能修改,故命令F未能将字符A填入F000:200H22FH的内存中,内存F000:200H22FH的内容填写前后保持不变。中断指令INT N是指令系统中较复杂的一条指令,结合教材中对中断指令的介绍,利用DEBUG来学习,加强对中断指令执行过程、中断向量表、中断向量和中断子程序等内容的理解。用A命令汇编好后,用T,P,G命令分别执行,记录指令执行前后各寄存器(包括标志寄存器各标志位值)、堆栈指针及堆栈内容变化情况,以及与指令有关内存单元的内容,总结T和P执行某些指令的不同之处及适用场合。为避免调试过程中出现死机,造成内存中的程序丢失,而重复多次输入程序,在用A命令将程序汇编到内存后,先用命令N和W将程序写到磁盘上,再进行调试运行。当调试过程中出现异常时,重新启动系统,用命令N和L将文件从磁盘装入内存,重新对程序进行调试运行。DEBUG下不支持符号地址,如任务7中的标号next,again1,again2等,在命令A下输入程序时,不输入标号(如next:),在用到标号的指令(如LOOP,JNZ等),在其后直接输入要跳转的目的地址。对向前跳转的指令,如汇编任务7,输入程序的过程如下:A 1270:0100 MOV CX,5 1270:0103 MOV AL,0 1270:0105 MOV BX,2000 1270:0108 ADD AL,BX 1270:010A INC BX 1270:010B DEC CX1270:010C LOOP 0108 1270:101E MOV BX,AL 1270:0110 INT 31270:0112 用目的地址0108代替标号next在LOOP指令中的位置,而在输入ADD AL,BX这条指令时,不输入标号next.对向后跳转的指令,由于目的地址尚未确定,可先随意输入一个地址,若是条件转移指令,注意跳转范围应在128127之间,待程序输入完毕,目的地址明确后,再用命令A修改跳转指令。如下程序段,功能是比较AX和CX中的两符号数,将较大的数放在AX和BX中,较小的数放在CX中。 CMP AX,CX JX continue XCHG AX,CXcontinue: MOV BX,AX用命令A输入程序的过程如下:A 1270:0100 CMP AX,CX 1270:0102 JG 0102 输入本条指令的地址0102代替标号continue1270:0104 XCHG AX,CX 1270:0106 MOV BX,AX 1270:0108 A 102 修改跳转指令的目的地址1270:0102 JG 0106 输入目的地址01061270:0104 U 1270:0100 L 0 A 用命令U查看程序,跳转正确1270:0100 39C8 CMP AX,CX1270:0102 7F02 JG 01061270:0104 87C1 XCHG AX,CX1270:0106 89C3 MOV BX,AX12.执行任务7中的任务时,会发现执行的结晶与设计的结果不相符,但又无法从源程序段发现出错原因时,可用命令T跟踪执行程序,查看每条指令执行完后的结果是否与设想的一致,如发现有误,找出原因,然后修改程序,再跟踪执行,直到结果与设想相符,并能实现程序段功能.这个过程就是程序的调试过程。调试程序时,要有耐心。13.将任务8中调试好的程序以文件形式存储在磁盘上。结束实验前,将实验结果演示给指导教师检查。五、实验方法1、假设某内存单元的内容为CCH,试问该内容如看作一条指令、看作无符号数、看作带符号数,那将分别表示什么?不查看教材中的指令系统代码,如何在DEBUG下知道CCH表示一条什么指令?2、在指令MOVBX,AX中,操作数BX的寻址方式是什么?在DEBUG下执行完该指令后,如何查看执行结果?3、可否随意在DEBUG提示符“”后不带参数发出命令G?什么情况下使用命令G时,可不用“=”给出执行的首地址?4、分析出现死机的几种情况。如何理解死机现象?试从计算机的工作原理进行解释。 六、实验报告1、分析任务2中各条指令错误原因。2、记录CPU在开机后报告文学行的第一条指令。3、描述中断指令执行过程,记录1CH的中断子程。4、说明可读写内存RAM和只读内存ROM的区别。5、说明命令T和P的差别。6、指出任务6中程序段的出错原因,给出修改后的程序段。7、给出任务7中调试好的程序。8、回答问题思考。9、针对实验目的认真做小结。实验二 分支与循环程序设计实验一、实验目的1掌握汇编语言程序上机过程。 2掌握汇编语言结构。 3学习汇编语言的伪操作。 4了解汇编程序、连接程序、DOS系统装入和返回功能。 5掌握用DEBUG调试汇编语言程序的方法二、实验内容、 输入一个字符,回车后输出一个字符串,说明其类型。、 学会定义字符串和输出字符串。、 学会在屏幕上输出一个字符,通过判断键盘按下一个键来执行分支程序。三、实验设备及仪器 PC兼容计算机及系统软件四、实验要求编制程序,实现如下功能:1、当输入的数字,按回车后随即出现一个的字符串。2、当输入一格字母,按回车后随即出现一个的字符串。3、当输入一格符号,按回车后随即出现一个的字符串。4、先判断码,将数字、字母、符号的分开,当你输入一个字符以后程序根据你的字符的来跳转到输出其相应的字符串。五、问题思考1 汇编语言程序中语句END后的标号作用是什么?2 将字符串分别定义在不同的段,怎么取其地址,取地址有几种方法?六、实验报告1 画出各程序流程图,列出程序清单,加上适量注释。2 记录实验任务“2.伪操作学习”的结果。分支程序的设计。3 回答问题思考。4 针对实验目的做小结。实 验 三 中断程序设计实验一、实验目的 1、掌握DOS系统提供的DOS和BIOS功能调用方法。2、巩固汇编语言程序编写方法。3、掌握DOS调用和BIOS调用的基本技巧二、实验内容1在屏幕上显示系统时钟,可以输入时间间隔。 2运行时先在屏幕上显示提示行,提示内容自定,作用是提示用户输入他需要的显示系统时间间隔。然后系统就按照用户输入的间隔显示系统时间。直到按下退出键。 三、实验设备及仪器 PC兼容计算机及系统软件四、实验要求1、实验前参看教材或相关参考书,了解中断的设置、保存、调用关闭的方法,注意每个功能的入口参数,出口参数以及调用的中断功能号。2、了解怎样编写中断服务子程序。熟练分支的跳转。3、掌握怎样在屏幕上输入字符串,怎么处理一个十六进制的数转换为十进制显示出来。五、问题思考1、 调用INT 21H中的0AH、09H功能时,要注意什么?用0AH输入的字符串,不加处理,能否直接用09H功能输出?2、 ASCII字符串的作用是什么,它的格式是怎样?六、实验报告1、画出各任务流程图,给出程序清单,并加适当的注释。2、根据程序运行结果,总结实验所得,回答问题思考所问。3、小结中断程序主要需要设置什么?。实验四 屏幕显示程序设计实验一、实验目的1 熟悉编写和调试语言程序的方法,提高编程技巧。2 掌握用软件实现几种码制之间的转换。二、实验要求 编写完整汇编语言程序:1 熟练掌握如何查看DOS中断调用和BIOS中断调用表。2 学会清屏和在屏幕上开出不同大小,不同颜色,不同分辨率的窗口。可以在窗口中输入字符,但不能超出窗口大小,应具有卷屏功能。3 掌握对光标的处理,如,读光标的位置,置光标的位置。三、实验说明1、 先清屏,除去编译连接完在屏幕上留下的文字。然后通过BAIOS中能调用,开出一个窗口,注意:窗口属性的设置。2、 置光标位置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论