《微机原理及汇编语言》实验指导书

上传人:xzh****18 文档编号:35601398 上传时间:2018-03-18 格式:DOC 页数:13 大小:91.50KB
返回 下载 相关 举报
《微机原理及汇编语言》实验指导书_第1页
第1页 / 共13页
《微机原理及汇编语言》实验指导书_第2页
第2页 / 共13页
《微机原理及汇编语言》实验指导书_第3页
第3页 / 共13页
《微机原理及汇编语言》实验指导书_第4页
第4页 / 共13页
《微机原理及汇编语言》实验指导书_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《《微机原理及汇编语言》实验指导书》由会员分享,可在线阅读,更多相关《《微机原理及汇编语言》实验指导书(13页珍藏版)》请在金锄头文库上搜索。

1、微机原理和汇编语言 实验指导书信息与通信工程学院电气工程系目目 录录实验须知实验须知3实验一实验一 数据求和实验数据求和实验 .4实验二实验二 循环与分支程序设计实验循环与分支程序设计实验.8实验三实验三 中断程序设计实验中断程序设计实验 .12实验四实验四 屏幕显示程序设计实验屏幕显示程序设计实验.14实验五实验五 文件操作程序设计实验文件操作程序设计实验.16第一部分第一部分 实验须知实验须知1、预习要求、预习要求实验前认真阅读实验教程中有关内容,明确实验目的和实验任务。每次实验前应有预习报告,未预习者不允许参加实验。预习报告中:对软件实验,要求画出程序流程图,编好上机程序;对硬件实验,要

2、求画出实验线路图,拟定实验步骤,画出程序流程图,编好上机程序。2、实验要求、实验要求实验是学习“微机原理及汇编语言程序”这门课程的重要环节,实验课请勿迟到,缺席。爱护设备,保持清洁,不随意更换设备。认真完成实验任务,实验结果经教师检查,教师对实验内容提问,对完成者做记录。做硬件实验时,注意断电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行,严禁带电操作,并注意防止导线堵塞插孔。发生事故,应立即切断电源,并马上向教师报告,检查原因,吸取教训。实验完毕,请整理实验设备,再离开实验室。3、报告要求、报告要求每次实验后,应递交一份实验报告,报告中应包括下列内容:(1)实验名称、实验人姓名、

3、学号、班级、所用的设备号。(2)实验目的、任务。(3)各任务程序流程图、程序清单(应加适量注释) 。(4)硬件实验应画出各任务的完整电路图,包括 PC 总线与实验用到芯片间全部电路。(5)记录和分析实验结果。(6)根据实验目的认真做小结。第二部分第二部分 实验实验实验一实验一 数据求和实验数据求和实验一、实验目的一、实验目的1、学习使用 DEBUG 程序的各种命令。2、了解计算机取指令、执行指令特别是算术运算指令的工作过程。3、掌握用 DEBUG 调试程序的方法。二、实验内容二、实验内容1、参照教材中有关内容,掌握 DEBUG 程序的各种操作命令,重点为R寄存器内容检查命令D存储器内容检查命令

4、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、情况,了解什么是中断向量表,中断向量和中断子程,掌握中断指令的执行过程。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 开始的

6、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 下汇编、调试完成下列功能的程序。将内容 F0

7、00:2000H 起 30H 个字数据传送到内存 X:1000H 开始处。测试内存 X:300H 开始的 10H 个字节数据,计算其中正数、负数、0 的个数,并将结果分别存放在 X:400H 开始的三个内存单元中。三、实验设备及仪器三、实验设备及仪器PC 兼容计算机及系统软件四、实验说明四、实验说明(原理原理)在 DEBUG 下,用户可对所有寄存器、RAM 内存随意查看和修改,但由于对 DOS 操作系统在内存中存放情况不了解,可能会将存放有操作系统程序的内存内容破坏,从而可能引起系统运行异常,往往是出现死机现象,故建议使用 DOS 分配给用户的内存可用区,其低端地址是刚进入 DEBUG 时,用

8、命令 R 查看到的 CS:IP。涉及到修改内存的命令有 A,E,F,M,L 等。初学者在使用 DEBUG 命令修改内存或执行程序时,由于多种原因,出现死机是较经常的现象,可按 RESET 复位按钮,重新启动系统。用连续执行命令 G 执行程序时,注意给出执行的首地址,或查看当前 CS 和 IP 值是否为要执行程序段的首地址,并注意查看执行的指令流程中有无返回 DEBUG 功能的程序段,如指令 INT 20T 或断点设置 INT3,否则发出命令后,很容易出现死机,原因是如无程序段使系统返回命令接受状态,CPU 将不断到内存取指令、执行指令,使作户失去对系统的控制,出现死机。为避免这种情况,可在用户

9、程序段的最后加上一条 INT 20H指令,或用断点方式执行。避免出现死机。在命令 A 下汇编各条指令,对于错误的指令,DEBUG 指令出其错误位置,对于正确的指令,将其汇编到相应内存,据此可判断指令正误,而具体原因需自己分析。关于任务 3,8086/8088 CPU 在开机后执行的第一条指令在内存 FFFF:0H 开始处。由于可读写内存 RAM 的内容可修改,而只读内存 ROM 的内容不能修改,故命令 F未能将字符A填入 F000:200H22FH 的内存中,内存 F000:200H22FH 的内容填写前后保持不变。中断指令 INT N 是指令系统中较复杂的一条指令,结合教材中对中断指令的介绍

10、,利用 DEBUG 来学习,加强对中断指令执行过程、中断向量表、中断向量和中断子程序等内容的理解。用 A 命令汇编好后,用 T,P,G 命令分别执行,记录指令执行前后各寄存器(包括标志寄存器各标志位值) 、堆栈指针及堆栈内容变化情况,以及与指令有关内存单元的内容,总结 T 和 P 执行某些指令的不同之处及适用场合。为避免调试过程中出现死机,造成内存中的程序丢失,而重复多次输入程序,在用A 命令将程序汇编到内存后,先用命令 N 和 W 将程序写到磁盘上,再进行调试运行。当调试过程中出现异常时,重新启动系统,用命令 N 和 L 将文件从磁盘装入内存,重新对程序进行调试运行。DEBUG 下不支持符号

11、地址,如任务 7 中的标号 next,again1,again2 等,在命令 A 下输入程序时,不输入标号(如 next:) ,在用到标号的指令(如 LOOP,JNZ 等) ,在其后直接输入要跳转的目的地址。对向前跳转的指令,如汇编任务 7,输入程序的过程如下:A 1270:0100 MOVMOV CXCX,5 5 1270:0103 MOVMOV ALAL,0 0 1270:0105 MOVMOV BXBX,20002000 1270:0108 ADDADD ALAL,BXBX 1270:010A INCINC BXBX 1270:010B DEC CX1270:010C LOOP 0108

12、 1270:101E MOVMOV BXBX,ALAL 1270:0110 INTINT 3 31270:0112 用目的地址 0108 代替标号 next 在 LOOP 指令中的位置,而在输入 ADD AL,BX这条指令时,不输入标号 next.对向后跳转的指令,由于目的地址尚未确定,可先随意输入一个地址,若是条件转移指令,注意跳转范围应在128127 之间,待程序输入完毕,目的地址明确后,再用命令 A 修改跳转指令。如下程序段,功能是比较 AX 和 CX 中的两符号数,将较大的数放在 AX 和 BX 中,较小的数放在 CX 中。CMP AX,CXJX continueXCHG AX,CXc

13、ontinue: MOV BX,AX用命令 A 输入程序的过程如下:A 1270:0100 CMPCMP AXAX,CXCX 1270:0102 JGJG 01020102 输入本条指令的地址 0102 代替标号continue1270:0104 XCHGXCHG AXAX,CXCX 1270:0106 MOVMOV BXBX,AXAX 1270:0108 A 102 修改跳转指令的目的地址1270:0102 JGJG 01060106 输入目的地址 01061270:0104 U U 1270:01001270:0100 L L 0 0 A A 用命令 U 查看程序,跳转正确1270:010

14、0 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、分析出现死机的几种情况。如何理解死机现象?试从计算机的工作原理进行解释。 六、实验报告六

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

当前位置:首页 > 行业资料 > 其它行业文档

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