微机原理实验指导书 .doc
《微机原理实验指导书 .doc》由会员分享,可在线阅读,更多相关《微机原理实验指导书 .doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验一 系统操作及程序调试举例1. 实验目的学习并掌握实验系统的基本操作,为以后的实验打下基础。2实验设备DICE-8086B实验系统一台3实验准备工作系统一经连好,检查无误后,就可以通电运行。系统提供两种启动方式,即:类型操作显示功能热启动按线路板左下角的复位开关WELCOME TO YOU!复位CPU、接口,清断点冷启动上电复位WELCOME TO YOU!复位CPU、接口,清断点,自检系统系统自动完成后,显示器上会显示“”提示符,等待键入操作命令。4实验内容及步骤(1) 系统操作练习(一)要求:从3500内存单元开始建立015共16个数据。程序流程图如下:实验步骤 输入与修改:在“”提示
2、符下键入A2000,此时显示器上将会显示程序的段地址CS和偏移地址IP(=2000H),接着就可以在光标处输入程序。注:在输入过程中,若发现本行有错误,则可以按“”键删除并重新输入;若回车后系统提示“ERROR!”,则要在原地址指针处重新正确输入。输入程序后可通过反汇编查看程序。(U操作) 程序运行:在DICE-8086B实验系统上,程序的运行方式有单步、连续和断点运行几种方式。可参考(T操作,G操作,GB操作等) 内存单元的修改与显示:用(D操作)可显示内存单元的内容,用(E操作)可修改内存单元的内容。(分别参考前)。运行程序观察从3500H单元开始连续存放的16个数据为多少?任意修改AX的
3、值,再运行程序,显示运行结果是否正确?流程图及参考程序如下:开 始数据区首址3500H放入DI数据区长度0010H放入CXAL0AL中的数送DI所指单元DIDI+1ALAL+1CXCX-1CX=0 ?停机 N Y地址 机器码 助记符 注释2000 BF 3500 MOV DI,3500;设数据区首址2003 B9 0010 MOV CX,0010;字节数送CX2006 B8 0000 MOV AX,00002009 9E SAHF200A 88 05 MOV BDI,AL;写入一字节200C 47 INC DI;修改地址指针200D 40 INC AX;修改数据200E 27 DAA;十进制调
4、整200F E2 F9 LOOP 200A;未填完转移2011 CD 00 INT(2) 系统操作练习(二)要求:将内存3500单元开始的015共16个数传递到3600单元开始的数据区中。程序流程图及参考程序如下。实验步骤输入程序并检查无误;运行以上程序;G=2000查看运行结果;分别查看在数据区3500H开始的连续16个单元的内容和3600H开始的内容是否相同。即先D=3500查看,后D=3600查看。在两个数据区的数据是不相同。若不同调试运行,寻找程序错误所在。若数据区3500H单元开始的连续16个单元的内容分别为:23H,33H,43H,45H,34H,44H,24H,20H,61H,6
5、2H,38H, 30H,37H,66H,64H,0AH等,试运行程序,观察从3600H单元开始的连续16个单元的内容应该为多少?流程图及参考程序如下:开 始送数据源地址、目的地址、字节数取源数据一字到AX中,AX送目标地址单元中,修改指针停 机传完否 ? N Y地址 机器码 助记符 注释2000 BE 3500 MOV SI,3500;建立源地址指针2003 BF 3600 MOV DI,3600;建立目的地址指针2006 B9 0008 MOV CX,0010;字数送CX2009 8B 04 MOV AX,WSI;取一字200B 89 05 MOV WDI,AX;送一字200D 46 INC
6、 SI;修改指针200E 46 INC SI200F 47 INC DI2010 47 INC DI2011 49 DEC CX2012 75 F5 JNZ AGAIN;未传完转移2014 CD 00 INT(3) 实验前的准备工作要求在作所有实验前,大家利用课余时间完成以下程序的设计,并通过汇编生成列表文件(.LST)。以便在输入程序过程中用到一些转移地址,或通过计算每个指令的字节数来计算其在转移指令的转移地址。例如:要求取X,Y,Z三数(字)的最大值,并把最大值放在MAX单元。假若X,Y,Z,MAX分别在以3500H单元开始的连续区域。则我们可以在下面准备实验时,可先编写源程序,然后进行汇
7、编,并生成列表文件(.LST)。若我们所取文件名为EXAM.ASM,且源程序内容这样实现:DATA SEGMENTORG 3500HX DW ?Y DW ?Z DW ?MAX DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA ORG 2000HSTART: MOV AX,DATA MOV DS,AX MOV AX,X CMP AX,Y JAE XGY MOV AX,YXGY: CMP AX,Z JAE GMAX MOV AX,ZGMAX: MOV MAX,AX INT 20HCODE ENDS END START则我们的汇编过程为:在DOS提示符
8、MASM当前目录下:执行DOS提示符MASM(回车) 则系统会提示以下问题:Microsoft MACRO Assembler Version 3.00 (C)Copyright Microsoft Corp 1981, 1983, 1984Source filename .ASM: (输入要汇编的源程序名)EXAM (回车) Object filename EXAM.OBJ: (生成的目标文件名)(回车) Source listing NUL.LST: (生成的列表文件名)(回车) Cross reference NUL.CRF: 49698 Bytes free Warning Sever
9、eErrors Errors 0 0(显示警告和错误个数,这里必须为0时,才允许进行连接)经汇编后生成的列表文件(EXAM.LST)如下: 0000 DATA SEGMENT 3500 ORG 3500H 3500 ? X DW ? 3502 ? Y DW ? 3504 ? Z DW ? 3506 ? MAX DW ? 3508 DATA ENDS 0000 CODE SEGMENT ASSUME CS:CODE,DS:DATA 2000 ORG 2000H 2000 START: 2000 B8 - R MOV AX,DATA 2003 8E D8 MOV DS,AX 2005 A1 350
10、0 R MOV AX,X;X=W3500 2008 3B 06 3502 R CMP AX,Y;Y=W3502 200C 73 03 JAE XGY;符号地址XGY=2011 200E A1 3502 R MOV AX,Y;Y=W3502 2011 3B 06 3504 R XGY: CMP AX,Z;Z=W3504 2015 73 03 JAE GMAX;符号地址GMAX=201A 2017 A1 3504 R MOV AX,Z;Z=W3504 201A A3 3506 R GMAX: MOV MAX,AX;MAX=W3506 201D CD 20 INT 20H 201F CODE END
11、S END START所以可得我们在实验环境下,可这样来编程序(设CS:IP=0000:2000)地址助记符2000MOVAX,00002003MOV DS,AX2005MOVAX,W35002008CMPAX,W3502200CJNB2011200EMOVAX,W35022011CMPAX,W35042015JAE201A2017MOVAX,W3504201AMOVW3506,AX201DINT20最后,再按以上步骤去进行。即(1)E3500(回车)在3500H3505H内存单元输入十六进制数;(2)输入程序;(3)G=2000(回车),执行程序;(4)显示3500H3507H单元的内容,则
12、在3506H3507H单元中内容即为结果(X,Y,Z中的最大值)软件实验 通过以下软件实验程序的调试,使大家熟悉8086/8088的指令系统,了解顺序、分支、循环、子程序四种基本结构的编程技术,掌握汇编语言程序设计方法以及如何使用实验系统提供的调试手段来排除软件错误。 实验二 、数码转换及运算程序设计一、 实验目的1掌握不同进制数及编码间的相互转换的程序设计,加深对数码的了解;2掌握使用运算类指令编程及调试的方法;3掌握运算类指令对状态樗位的影响及其测试方法。4进一步熟悉调试程序的方法。二、 实验设备DICE-8086B实验系统一台三、 实验内容及步骤1、 实验内容(1) 将ASCII码表示的
13、十进制数转换为二进制数;例如:设在3500单元开始存放31 32 33 34,则转换后应为0C 22。(2) 将十进制数的ASCII码转换为BCD码;例如:设在3500单元开始存放31 32 33 34,则转换后应为01 02 03 04等。(3) 将十六制数转换为ASCII码;例如:设在3500单元开始存放3B 20,则转换后应为42 33 30 32。参考程序:地址助记符注解2000MOV CX,00042003MOV DI,35002006MOV DX,WDI2008MOV AX,DX200AAND AX,000F;取低4位值200DCMPAL,0A;判断是否“09”200FJB2013
14、;是则转20132011ADDAL,07;否则是“AF”,加072013ADDAL,30;转换为ASCII码2015MOVBDI+0A,AL2018INC DI2019PUSH CX;保护循环计数器内容201AMOV CL,04;移位次数送CL201EPOPCX201FLOOP20082021INT(4) BCD码转换为二进制码。例如:设3500单元开始存放非压缩BCD码01 02 03 04 05 06,则转换后应为0C 00 22 00 38 00。(5) 将二进制数转换为ASCII码例如:设3500单元开始存放4FFFH,则转换后为20479或9 7 4 0 2。在数据段中首址为3500
15、H的X单元,3504H开始的Y单元及3508H开始的Z单元,且其数据如下:DS:3500A0 65 15 00DS:35049EB7 21 00DS:3508 假定原数码在3500开始的内存单元中存放,转换结果存放在3520开始的内存单元。(6)多字节加法运算计算Z=X+Y,并将结果存入Z单元。参考程序如下:地址助记符注解2000MOVAX,W3500;X低位送AX2003ADDAX,W3504;X低位加Y低位2007MOV W3508,AX;存低位和200AMOVAX,W3502;X高位送AX200DADCAX,W3506;X高位加Y高位2011MOVW350A,AX;存高位和2014INT
16、(7)BCD码减法运算计算Z=X-Y,编写程序实现。例如,X=40,Y=12,则Z=28。(8)BCD码的乘法运算计算Z=X*Y,试编写程序完成。例如,X=12,Y=35,则Z=420。例如,B=23,A=7,则C=3,R=2。(9)开平方运算用减奇数法可获得平方根的整数部分,是因为。设被开平方数为正整数,存放在3500H单元,参考程序如下:地址(H)助 记 符注 解2000MOV AX,W3500;取被开方数2003MOVCL,00;清平方根2005MOVDX,0001;奇数初值2008SUBAX,DX;减奇数200AJB2013;不够减则结束200CINCCL;够减奇数个数计数200EAD
17、DDX,02;形成下一个奇数2011JMP20082013MOVB350A,CL;存平方根2017INT2、 实验步骤(1) 输入程序并检查无误;(2) 用编辑命令E在3500开始的单元中存放原数码;(3) 用G命令或T命令运行以上程序;(4) 用D命令查看运行结果;(5) 反复试几组数,考查程序的正确性。四、 实验要求1 按要求绘制流程图,并编写程序。2 通过实验验证所编程序的正确性,若运行不正确,应怎样进行修改。3 写出实验结果。4 分析实验过程中出现的问题。实验三、分支、循环、排序及子程序设计一、实验目的1 掌握分支程序的结构,掌握分支程序的设计、调试方法;2 加深对循环结构的理解,熟练
18、掌握循环结构程序的设计方法及调试方法;3 学习子程序的定义和调用方法,掌握子程序、子程序的嵌套、递归子程序的结构,掌握子程序的设计及调试方法;4 学习综合程序的设计、编制及调试方法。二、实验内容1 设计一数据块的搬移程序提示:源数据块和目的数据块有可能不重叠,有可能部分重叠,也有可能全部重叠。请在一个程序中来完成。2 根据条件求和求S=1+2*3+3*4+N(N+1),直到N(N+1)项大于200为止。参考程序如下:地址(H)助记符注解2000MOVDX,0001;和S送初值12003MOVBL,022005MOVAL,BL;送被乘数2007INCBL;送乘数2009MULBL200BADDD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理实验指导书 微机 原理 实验 指导书
限制150内