8086-8088微机原理及应用实验指导书.doc_第1页
8086-8088微机原理及应用实验指导书.doc_第2页
8086-8088微机原理及应用实验指导书.doc_第3页
8086-8088微机原理及应用实验指导书.doc_第4页
8086-8088微机原理及应用实验指导书.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

安徽工程科技学院 微型原理及应用I 实验指导书8086/8088微机原理与接口技术378086/8088微机原理与接口技术1前 言3第一章 实验环境介绍61.1汇编语言程序的上机过程61.1.1、源程序的编辑61.1.2、汇编61.1.3、链接61.1.4、调试71.2 8088实验仪的连机实验环境(DJ-8086k)71.2.1、系统配置71.2.2、DJ-8086k软件启动和联机71.2.3、DJ-8086k软件主窗口81.2.4、源程序的编辑81.2.5、编译91.2.6、仿真调试9第二章 软件部分实验10实验一 汇编语言上机环境及基本操作10实验二 DEBUG调试程序的应用12实验三 多精度十进制加法程序设计17实验四 数学表达式计算19实验五 分支结构程序设计21实验六 循环结构程序设计22实验七 EMU8086集成开发环境23第三章 硬件部分实验253.1 存储器实验253.2 简单IO口实验283.3 8255A接口控制实验(一)303.4 8255A接口控制实验(二)32附:实验报告格式37前 言认真做好实验,是掌握应用,提高动手能力的一个重要环节。本课程安排了一些接口部件的实验,每个实验2学时,目的在于让同学们了解和掌握汇编语言的程序设计的基本方法和常用的接口器件的使用方法。一个完整的实验过程,包括实验前的准备、实验操作过程和实验后的总结三部分。做好实验前的准备,是做好实验的重要保障,希望同学们一定要做好实验前的准备工作。一、实验前的准备1、认真阅读实验指导书,详细了解本课程实验的软硬件环境。硬件环境:实验仪的基本组成和使用方法。软件环境:调试软件的基本功能和使用方法。这项工作应该在本学期开始,领到实验指导书时就进行。2、详细了解本次实验的基本任务,充分理解实验原理为了实现本次实验的基本任务,硬件电路由哪几个部分组成,各部分电路的主要作用是什么,各部分电路之间如何连接?在此基础上读懂实验电路图。为了实现本次实验的基本任务,软件部分需要完成哪些工作,确定软件由哪些功能模块组成,然后画出程序流程图,再按流程图编写源程序。在软硬件设计过程中,可能需要进行相应的参数计算。3、设计实验的操作流程事先设计好实验的操作流程,进入实验室后,可以有条不紊地工作。二、实验操作过程进入实验室以后,要按照事先设计好的实验操作流程来进行实验。软件实验的基本步骤为:1、启动EMU8086开发环境2、编辑源程序3、编译4、仿真调试硬件实验的基本步骤为:1、编制实验程序按照实验的内容要求编写实验程序。(要求采用汇编语言编程)2、硬件连线(在关机状态下进行)按照实验电路图,用导线将实验模块连接在一起。3、连接实验仪与PC机(在关机状态下进行)用一根串行电缆线将实验仪与PC机连接到一起。4、系统开关设置全部实验要求在连机环境下进行,开关KB6要置“88”位置, 选择8086系统和PC机通信。5、接通电源先打开实验仪电源,再打开PC机电源。6、启动连机实验环境(DJ-8086k)7、编辑实验源程序将编制好的实验源程序输入到计算机。8、汇编编制好的实验源程序在PC机上对编制好的实验源程序进行汇编。9、装载调试实验程序将汇编好的实验程序装入实验仪,应用程序单步、连续运行、设断点运行等调试手段进行调试。(注意观察)三、实验记录如实记录实验的操作过程及实验的数据,这里主要包括:1、实验的相关数据2、实验过程中的问题(包括分析与解决)四、实验报告实验报告是实验结果的总结,一般需要包括以下内容:1、实验名称 这里需要准确无误地写出实验的名称2、实验目的 3、实验任务(实验内容)4、实验原理 、硬件组成(软件实验没有此项内容)首先以文字说明实验电路由哪几个部分组成,各部分电路的主要作用是什么,然后给出实验电路图。、软件设计首先以文字说明软件需要完成哪些工作,因此确定软件由哪些功能模块组成,然后画出程序流程图,再按流程图编写源程序。5、实验操作这里,如实记录实验的操作过程或者是事先设计好的实验操作流程。6、实验记录这里,如实记录相关的实验数据以及实验过程中出现的问题和解决方法。7、实验结果根据前面记录的实验数据,给出实验的结果。一般情况下,有两种实验的结果:其一,实验过程中出现了一些问题,经过分析,解决了问题,最终成功实现了实验任务的要求;其二,实验过程中出现了一些问题,最终未能解决了问题,实验失败。8、实验分析:对实验过程中的问题进行分析。9、实验小结(包括体会)可以从实验的目标、实验环境的掌握、分析问题和解决问题的能力等几个方面来进行小结。也可以抒发一下你的感想。10、思考题的解答如果有思考题,需要认真解答。第一章 实验环境介绍1.1汇编语言程序的上机过程在计算机上运行汇编语言程序的步骤是: 用编辑程序(任何一种文本编辑程序)建立ASM文件; 用MASM程序把ASM文件转换成OBJ文件; 用LINK程序把OBJ文件转换成EXE文件; 用DEBUG程序可以调试目标程序 用DOS命令直接键入文件名就可执行该程序1.1.1、源程序的编辑源程序本质上是文本文件,任何一种文本编辑器都可以用来编写源程序,也可以使用计算机系统内含的全屏幕编辑程序EDIT.EXE。应注意的是: 源程序的编写必须符合汇编语言源程序的语法格式,否则汇编时会报错。 汇编语言源程序的文件后缀必须是ASM,否则汇编程序将不能识别。1.1.2、汇编汇编的目的是将汇编语言源程序转换为机器码,这项工作是由汇编程序来完成的。IBM PC提供了两种汇编程序:ASM.EXE和MASM.EXE。后者具有宏汇编功能。汇编过程中,首先检查源程序的语法。若存在语法错误,则汇编失败。列出有错误的语句、错误的代码、错误的类型和错误的总数,供分析、修改源程序。若不存在语法错误,则汇编成功。汇编后可生成3个文件:l 浮动的目标代码文件(*.OBJ):其中,地址操作数是可浮动的相对地址。l 可打印的列表文件(*.LST):将源程序和目标代码合并制成表。l 符号表文件(*.CRF):反映源程序中符号的定义和引用情况。其中,第1个文件是必须生成的,后2个文件可选择是否生成。1.1.3、链接由汇编生成的目标代码必须经过链接后才能生成可执行文件,这项工作由链接程序(LINK.EXE)来完成。链接后生成可执行文件(*.EXE)1.1.4、调试调试的目的是验证程序的功能是否符合设计的目标。IBM PC提供了一种调试程序:DEBUG.EXE在DEBUG环境下,可以使用DEBUG命令来调试程序。常见的DEBUG命令参见P130表3-13。1.2 8088实验仪的连机实验环境(DJ-8086k)1.2.1、系统配置实验仪和 PC机通过RS232串行口相连。这种配置形式可以充分利用PC机的软硬件资源,实现源程序的编辑、汇编和链接和调试。可以利用PC机的键盘显示等输入输出设备完成各种软硬件实验。此时,开关KB6要置“88”, 选择8086系统和PC机通信。1.2.2、DJ-8086k软件启动和联机DJ-8086k是启东市东疆计算机公司为本实验仪配套的8088集成开发环境,用来在PC机上实现8088CPU的源程序编辑、汇编、链接和调试。 软件的启动和联机双击桌面上DJ-8086k快捷图标,即可运行DJ-8086k软件,屏幕显示DJ-8086k软件的工作窗口,底边状态栏由“下位机没有连接”变成“连接上下位机”,说明联机成功,否则会弹出对话框提示:“下位机没有连接”,此时单击“OK”,实验系统和PC机处于脱机状态,然后用户根据连接硬件实际情况来设定COMl或COM2,设定方法如下:依次单击菜单栏:“设置(X)、通讯口设置(Z)、COM1或COM2”确定,然后点击打开端口,状态设定后,系统会自动检测连接。如果此时确定端口正确,但系统仍然没有连接,可按以下两种方法解决:(1)单击工具栏上的“重新连接”按钮,即可联机;(2)复位实验系统,使得数码管上显示监控提示符“P.”, 然后关闭DJ-8086k软件,重新运行,故障即可排除。 联机失败原因及解决办法l 实验系统与PC机没有连接;l 实验系统电源没有打开;l 串口实际位置与软件设置不一致;l 通讯开关位置不正确, 检查实验系统各状态设置开关是否正确;l 软件有病毒;l 实验系统或PC机处于非正常状态。对于的错误,只要在硬件上检查一下,或用杀毒软件清毒一下即可:如文件已被破坏或需软件升级,可到本公司网站下载,网址:WWWQD-DJCN。对于第种错误,重复5.3.1操作,对第种错误,联机之前先按一下实验系统RST复位按钮,使实验系统处于P态, 否则说明实验系统不正常,应送当地销售部门或返厂维修。如PC机工作失常也会引起联机失败, 可关闭DJ-8086k软件,重新运行或调换PC机试一下。1.2.3、DJ-8086k软件主窗口 软件启动后的界面如下图,可分为三个区域。顶部为菜单栏和工具栏, 提供调试全部命令和功能;中间部分为工作窗口区,提供软件调试、寄存器、标志位、存储器、汇编代码对照、编译信息显示等窗口;底部为状态栏,提示软件联机状态等信息。图1-1 DJ-8086k软件主窗口1.2.4、源程序的编辑从文件菜单新建文件(S)或点击可创建一个新的源程序文件,并进入源程序编辑窗口。从文件菜单打开文件(T)或点击可打开一个已存在的源程序文件,并进入源程序编辑窗口。进入源程序编辑窗口后,可以在该窗口下按照汇编语言格式或C语言格式的要求编辑源程序。源程序编辑窗口打开后,编辑菜单有效。此时,可以使用编辑菜单中的命令(剪切、复制、粘贴、查找等)来辅助源程序编辑。源程序编辑完后,可点击或从文件菜单保存文件(V)来保存正在编辑的源程序文件。也可从文件菜单另存为(W)将当前正在编辑的源程序文件重命名保存。保存时,注意选择合适的文件保存类型。如果是汇编语言源程序,应选择后缀为“*.asm”;如果是C语言源程序,应选择后缀为“*.c”。1.2.5、编译将编辑完成的源程序转变为8088CPU的目标代码。点击或从调试菜单中选择编译程序(N), 可以编译源文件并生成目标代码。点击或从调试菜单中选择编译装载(Q)进行,可以编译源文件并生成目标代码并自动装载程序。如编译出错,会提示错误信息,待修改源文件正确后,重新编译即可。1.2.6、仿真调试在汇编完成无误时,可选择进行仿真调试。 装载程序点击或从调试菜单中选择装载程序(O)可以进行装载数据。装载数据结束,几秒钟后便会弹出“源文件调试窗口”。若编译选择编译装载(Q),则在编译完成后自动进行装载。 连续运行(F8)从调试菜单中选择连续运行(R)或单击工具栏的连续运行图标,即可全速连续运行程序。 程序单步(F7)从调试菜单中选择程序单步(S)或单击工具栏的程序单步图标,即可单步运行程序。 复位菜单栏中“复位”无效,可单击工具栏的“复位”图标,即可复位软件,寄存器置初值,指令指针返回到程序首地址。第二章 软件部分实验实验一 汇编语言上机环境及基本操作一、 实验目的及要求1 学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。2 学会使用EDIT、MASM、LINK、DEBUG等软件工具。3 熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。二、 实验内容1 建立软件工作环境为了正常运行汇编程序,需要如下程序: masm.exe 或 tasm.exe link.exe debug.exe 等2 建立汇编文件例 在屏幕上输出 This is a masm sample!使用edit编辑如下文件,并保存为sample.asm:;Program is an exampledata segment astr DB This is a masm sample!,0dh,0AH,$data endscode segmentassume CS:code,DS:data main proc farstart:PUSHDSXORAX, AXPUSHAXMOVAX, dataMOVDS, AXLEADX, astrMOVAH, 09hINT21hRET main endp code ends end start1) 使用汇编c: masm sample -开始汇编Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. -软件提示Object Filenamesample.obj: -提示输入目标文件名,可省略Source listingNul.lst: -提示输入列表文件名,可省略Cross referenceNUL.crf: Warning Severe 注意:若汇编的错误提示不为0,则须重新调用edit sample.asm修改错误,然后再汇编,该过程直到错误提示为0为止。2) 使用link产生EXE文件c:link sample.Run filesample.exe:-提示输入可执行文件名,可以省略List file NUL.map:-提示输入连接映象文件Libraries.lib -输入文件用到的库文件名.3) 执行c:sample 或 debug sample.exe附:ms-dos方式,是windows提供的一个字符界面的shell窗口,通过“开始程序ms-dos方式”进入ms-dos方式后,可以按下“ALt+Enter”获得全屏幕的窗口,再该窗口下,主要通过键入命令和观察结果获得交互信息。命令简介1、 DIR命令显示当前目录下的文件和目录格式为:dir2、 CD命令改变当前工作目录格式为:cd d:studentyour_name3、 MD命令建立一个新的目录格式为:md your_name4、 DEL命令删除文件格式为:del first01.asm5、 RD命令删除目录,要求要删除的目录下无任何目录或文件格式为:rd your_name6、 COPY命令拷贝命令格式为:copy first01.asm (将文件first01.asm复制为)实验二 DEBUG调试程序的应用一、实验目的及要求1了解并掌握常用DEBUG调试指令。2能够在熟悉汇编程序开发过程的同时,利用DEBUG调试环境对源程序进行调试、跟踪及修改相应的逻辑错误。二、实验内容1直接启动DEBUG程序如DEBUGCOM在C盘的根目录下,启动的方法是:C:DEBUG这时屏幕上会出现“_提示符,等待键入DEBUG命令。2启动DEBUG程序的同时装入被调试文件 命令格式如下:C:DEBUGd:PATHfilename.EXE 其中,【d:】【PATH】是被调试文件所在盘及其路径,filename是被调试文件的文件名, 【.EXE】是被调试文件的扩展名。 例如:BCDSUMEXE可执行文件在A盘,用DEBUG对其进行调试的操作命令如下。 C:DEBUG A:BCDSUNEXE DOS在调用DEBUG程序后,再由DEBUG把被调试文件装入内存,当被调试文件的扩展名为COM时,装入偏移量为100H的位置,当扩展名为EXE时,装入偏移量为0的位置,并建立程序段前缀PSP,为CPU寄存器设置初始值。3退出DEBUG 在DEBUG命令提示符“_下键入Q命令,即可结束DEBUG的运行,返回DOS操作系统。4在DEBUG环境下建立和汇编程序 在DEBUG环境下用户可以直接建立汇编语言源程序,并可以进行编辑修改,还可以进行汇编。 比如,在DEBUG下运行如下程序: MOV DL,33H ;字符3的ASCII码送DL MOV AH,2 ;使用DOS的2号功能调用 INT 21H 进入功能调用,输出3 INT 20H :BIOS中断服务,程序正常结束。 该程序运行结果是在显示器上输出一个字符3。如果要输出其它字符,请改变程序中33H为相应字符的ASCII码。其中涉及DOS和BIOS功能调用。因为我们是在DOS的支持下运行汇编语言程序,所以一般情况下,不能轻易使用输入输出指令直接通过端口输入输出,而必须使用DOS内部提供的子程序完成输入输出。 DOS功能调用就是为诸如此类的目的设置的。DOS功能调用要求在进入INT 21H调用前,首先将功能调用号送AH寄存器,并根据功能调用号准备初始数据。也就是说INT 21H的2号功能调用是输出DL寄存器中的字符。INT 20H是BIOS中断服务,这一软中断用来正常结束程序。 运行步骤: (1)进入DEBUG 设C盘上有DEBUG.COM程序,进入DOS环境后键人DEBUG,即 C: DEBUG 随后屏幕显示: “_号是进入DEBUG的提示符,在该提示符下可键入任意DEBUG命令。现在用A命令输入程序如下。 (2)输入程序并汇编 _A 100 169C:0100 MOV DL,33 169C:0102 MOV AH,2 169C:0104 INT 21 169C:0106 INT 20 169C:0108 至此程序已输入完毕,并汇编成机器指令。现在用G命令运行程序如下:(3)执行机器指令程序 _G=200 3Program terminated normally5编程,并对实验一中的源程序进行DEBUG调试。附:常用DEBUG命令 DEBUG命令是在命令提示符”_”下由键盘键入的。每条命令以单个字母的命令符开头,然后是命令的操作参数,操作参数与操作参数之间,用空格或逗号隔开,操作参数与命令符之间用空格隔开,命令的结束符是回车键(ENTER)。命令及参数的输入可以是大小写的结合。Crtl+Break键可中止命令的执行。Crtl+NumLoek键可暂停屏幕卷动,按任一键继续。所用的操作数均为十六进制数,不必写H。1.汇编命令A 格式: (1)A: (2)A : (3)A (4)A 功能:汇编命令是将用户输入的汇编语言指令,汇编为可执行的机器指令。键人该命令后显示段地址和偏移地址并等待用户从键盘逐条键入汇编语言指令。每当输入一行语句后按“ENTER键,输入的语句有效。若输入的语句中有错,DEBUG会显示“Error,要求用户重新输入,直到显示下一地址时用户直接键入回车键返回到提示符”_”。其中(1)用指定段寄存器内容作段地址;(3)用CS内谷作段地址;(4)以cs:100作地址。以后命令中提及的各种地址形式,均指(1)、(2)、(3)中A命令后的地址形式。2比较命令C 格式:C, 其中是由指出的一片连续单元,或由L指定的。 功能:从的起始地址单元起逐个与目标起始地址以后的单元顺序比较单元的内容,直至源终止地址为止。遇有不一致时,以的形式显示失配单元及内容。3.显示内存单元命令D 格式: (1) D (2)D (3)D 其中(1)以CS为段寄存器;(3)显示CS:l00为起始地址的一片内存单元内容。功能:该命令将显示一片内存单元的内容,左边显示行首字节的段地址:偏移地址,中间是以十六进制形式显示的指定范围的内存单元内容,右边是与十六进制数相对应字节的ASCII码字符,对不可见字符以.代替。4修改内存单元命令E 格式: (1)E (2)E其中是一个十六进制数,或是用引号(或)括起来的字符串;是以逗号分隔的十六进制数,或是用,或括起来的字符串,或者是二者的组合。功能:(1)将指定内容写入指定单元后显示下一地址,以代替原来内容。可连续键入修改内容,直至新地址出现后键入回车为止;(2)将逐一写入由开始的一片单元中,该功能可以将由指定地址开始的连续内存单元中的内容,修改为单元内容表中的内容。例如: _E DS:30 F8,AB,AB 该命令执行后,从DS:30到DS:33的连续4个存储单元的内容将被修改为F8H,ABH,4lH,42H。5填充内存命令F 格式:F功能:将单元内容表中的值逐个填入指定范围,单元内容表中内容用完后重复使用。例如:F 05BC:200 L 10 B2,XYZ,3C该命令将由地址05BC:200开始的10H(1 6)个存储单元顺序填充“B2,58,59,5A,3C,B3,58,59,5A,3C,B2,58,59,5A,3C,B26. 连续执行命令G 格式: (1)G (2)G= (3)G=,其中(2)、(3)中的”=”是不可缺省的。功能:默认程序从CS:IP开始执行。程序从当前的指定偏移地址开始执行。从指定地址开始执行,到断点自动停止并显示当前所有寄存器、状态标志位的内容和下一条要执行的指令。DEBUG调试程序最多允许设置l0个断点。7. 跟踪命令T 格式:T【=】【】 功能:如果键入T命令后直接按“ENTER键,则默认从CS:IP开始执行程序,且每执行一条指令后要停下来,显示所有寄存器、状态标志位的内容和下一条要执行的指令。用户也可以指定程序开始执行的起始地址。的缺省值是一条,也可以由指定执行若干条命令后停下来。例如:T该命令执行当前指令并显示所有寄存器、状态标志位的内容和下一条要执行的指令。又例如:T 10 该命令从当前指令开始执行10H条指令后停下来,所有寄存器、状态标志位的内容和下一条要执行的指令。8. 反汇编命令U 格式: (1)U (2)U功能:反汇编命令是将机器指令翻译成符号形式的汇编语言指令。该命令将指定范围内的代码以汇编语句形式显示,同时显示地址及代码。注意,反汇编时一定确认指令的起始地址后再作,否则将得不到正确结果。地址及范围的缺省值是上次U指令后下一地址的值。这样可以连续反汇编。9执行过程命令P 格式:P功能:执行一条指令或一个过程(子程序),然后显示各寄存器的状态。说明:该命令主要用于调试程序。它与跟踪命令T的作用类似,T命令是跟踪一条或多条指令,而P命令是执行一条指令(包括带重复前缀的数据串操作指令)或一个完整的过程(子程序)。例如:设有如下指令序列 MOV AH,02HINT 21 H ;当要执行1NT 2 1 H这条指令时,若用T命令进行跟踪,则进入INT 21 H程序(DOS功能调用)后,需要数十次T命令才能返回当前程序;若采用P命令进行调试,则只执行1NT 20H一条指令,执行完立即返回,给调试者的感觉好象是执行了一条普通指令一样。因此,当以后遇到CALL、INT n指令或带重复前缀的数据串操作指令时,若不想观察相应过程的详细执行过程,就可以用P命令。10定义待装入文件命令N格式:N 【d:】【PATH】fllename EXE】功能:N命令一般和L命令联合使用,为L命令定义指定路径的待装入文件。11装入文件命令L格式:L其中的缺省值为CS:100。逻辑扇区可由物理扇区号换算得到,以双面双密度盘为例:物理扇区是按0面0道1区,0面0道2区,0面0道9区,0面l道l区,0面39道9区,l面0道l区,l面39道9区排列。而逻辑扇区与物理扇区号的对应关系为物理扇区0面0道l扇区至9扇区,逻辑扇区号为08;物理扇区l面0道l扇区至9扇区,逻辑扇区号为9l l H:物理扇区0面l道l扇区至9扇区,逻辑扇区号为1 2-1 AH这样每道先0面后l面一直排下去。其中为0、l或2,0表示A盘,l表示B盘,2表示硬盘。功能:将指定的盘上,从起,共n个逻辑扇区上的所有字节顺序读入指定内存地址的一片连续单元。当L后的参数缺省时,必须在L之前由N命令指定(或进ADEBUG时一并指出)所读盘文件名。此时L执行后将该文件装入内存。例如:_N EXAMPLE_L将当前盘上的EXAMPLE文件装入CS:100起始的一片内存单元。12内存单元搬家命令M 格式:M其中源及目标地址若仅输入偏移量,则隐含相对DS。功能:把中的内容顺序搬至起的一片连续单元。例如:M CS:100 110 600该命令把由CS:100起到CS:110止共17个字节搬至DS:600至DS:610的一片单元。13写盘命令W 格式:W 功能:该命令是将内存起始的一片单元内容写入指定扇区。只有W而没有参数时,与N命令配合使用使用户完成写盘操作。用户可用N命令先定义被调试的文件,再将被调试文件的字节长度值送BX、CX(BX寄存器存放字节长度值的高位,CX寄存器存放字节长度值的低位),最后用写盘命令W将被调试文件存入磁盘。例如:欲将D1.COM文件写入磁盘,设文件长度为40字节,可进行如下操作。 _N D1.COM -R CX CX xxxx:0040 _R BX BX xxxx :0000 _W Writing 00040 bytes1 4显示命令R格式: (1)R (2)R 功能:显示当前所有寄存器内容、状态标志及将要执行的下一指令的地址(即CS:IP)、机器指令代码及汇编语句形式。其中对状态标志寄存器FLAG以状态标志位的形式显示,详见教材。15端口输出命令。格式:O功能:将该由指定输出。例如:O 2F 4F该命令将4FH从2FH口输出.16搜索指定内存命令S格式:S 功能:在指定范围搜索表中内容,找到后显示表中元素所在地址例如:S 100 110 41屏幕显示:04BA:0104 04BA:010D表示在l00HllOH之间的一片存储单元中,104H和10DH两个单元有41 H。又如:S CS:100 L 10 AB表示在当前代码段位移100H至11OH处搜索连续3个字节内容为41H、42H(分别对应A、B的ASCII码)的单元。17十六进制算术运算指令H 格式:H 功能:求十六进制数和的和与差并显示结果。18端口输入命令I格式:I功能:将从指定端口输入的内容显示出来。19结束DEBUG返回DOS命令Q格式:Q 功能:返回DOS提示符下。实验三 多精度十进制加法程序设计一、实验目的1 学习数据传送和算术运算指令的用法。2 掌握加法计算程序的设计思路和设计方法。3 熟悉在PC机上建立、汇编、连接和调试程序的方法。二、实验内容1 将两个多精度十进制数相加。2 要求被加数和加数均以组合BCD码形式各自存放在以DATA1和DATA2为首的连续的5个内存单元中,结果送回被加数单元。三、编程思路该题目要求掌握ADC指令和DAA指令的应用。为了实现指定功能,应从以下几个方面考虑:(1) 组织数据时,要按照高位在高地址,低位在低地址的原则。(2) 要完成多精度字节数据相加,最低字节用ADD指令,而其他高位字节则要用ADC指令。(3) 因为被加数和加数都以BCD码表示,所以在加法指令之后要有加法调整指令。(4) 题目要求完成5个字节十进制数相加,所以要用循环程序。四、参考程序Crlf macro Mov dl,0dh Mov ah,0ah Int 21h Mov dl,0ah Int 21hEndmData segmentData1 db 37h,49h,53h,19h,46hData2 db 90h,87h,49h,31h,25hData endsCode segment Assume cs:code,ds:dataStart: Mov ax,data Mov ds,ax Mov si,offset data1 Mov bx,5 Call displ Crlf Mov si,offset data2 Mov bx,5 Call displCrlfMov si,offset data1Mov di,offset data2Mov cx,5Call addaMov si,offset data1Mov bx,5Call displCrlfMov ah,4chInt 21hDispl proc nearAdd si,bxDec siDs1: mov dh,siMov dl,dhMov cl,4Shr dl,clOr dl,30hMov ah,02hInt 21hMov dl,dhAnd dl,0fhOr dl,30hInt 21hDec siDec bxJnz ds1RetDispl endpAdda proc nearCLCAd1: mov al,siAdc al,diDaaMov si,alInc siInc diLoop ad1RetAdda endpCode ends End start五、思考题1)在子程序ADDA中,为什么需要CLC这条语句,没有行不行?2)在这个程序中,回车换行是用宏指令完成的,如果把宏指令改为子程序应如何设计程序?3)如果要完成多精度十进制减法,应如何设计程序?实验四 数学表达式计算一、实验目的1 掌握算术运算指令的应用方法。2 理解计算机中除法溢出的含义。二、实验内容1设W、X、Y、Z均为l 6位带符号数。2要求完成计算表达式(W-(X*Y+Z-220)X。3将表达式的商和余数存入数据区RESULT单元开始的区域中。三、编程思路 该题目要求掌握乘除法运算中带符号数和无符号数运算的区别。为了实现指定功能,应从以下几个方面考虑: (1)带符号数的乘除法运算应选用的指令。 (2)乘、除法运算中操作数的长度问题。 (3)带符号数的扩展问题。 四、参考程序清单 DATA SEGMENT W DW -304 X DW 1000 Y DW -12 Z DW 20 RESULT DW 2 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,X IMUL Y MOV CX,Ax MOV BX,DX MOV AX,Z CWD ADD CX,AX 、 ADC BX,DX SUB CX,220 SBB BX,0 MOV AX,W CWD SUB AX,CX SBB DX,BX IDIV X MOV RESULT,AX MOV RESULT+2,DX MOV AH,4CH INT 21HCODE ENDSEND START五、思考题1)如果是无符号数,乘除时应如何选择指令?2)如果要求表达式中的X,Y,Z,W从键盘输入应如何设计程序?实验五 分支结构程序设计一、实验目的1掌握多分支结构程序设计的方法;2掌握无符数和带符号数比较大小转移指令的区别。二、实验内容1在数据区中定义三个带符号字节变量。2编写程序将其中的最大数找出送到MAX单元中。三、编程思路该题目要求掌握多分支程序设计方法。为了实现指定功能,应从以下几个方面考虑:(1) 确定编程的算法思想。(2) 确定带符号数比较大小转移应选择哪一组条件转移指令。四、参考程序清单DATA SEGMENT X DB 115 Y DB 23 Z DB -20 MAX DB ? DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV AL,X CMP AL,Y JG NEXT MOV AL, Y CMP AL,Z JG EXIT MOV AL,Z JMP EXITNEXT: CMP AL,Z JG EXIT MOV AL,ZEXIT: MOV MAX,AL MOV AH,4CH INT 21H CODE ENDSEND START ;返回DOS五、思考题1)如果用子程序的方法来设计程序,应如何修改此程序?2)如果是无符号数比较大小,条件转移时应选择哪一组指令?实验六 循环结构程序设计一、实验目的 1掌握循环结构程序设计的方法;2掌握数据块传送程序设计的方法;3掌握串传送指令的应用。二、实验内容1 编写程序实现将数据段STR1单元开始的20个字符移到STR2开始的存储区。2 假设STRI+20STR2,可以用串传送指令,也可以用MOV传送指令。三 、编程思路该题目要求掌握单循环程序设计方法。为了实现指定功能,应从以下几个方面考虑:(1)数据串操作的起始位置从高地址还是从低地址开始。(2)确定使用串传送指令,还是用MOV指令。(3)确定循环程序的结构。四、参考程序清单DATA SEGMENT STRI DB WHAT IS YOUR NAME?,0AH,0DH,$ CN EQU $-STRISTR2 EQU STRI+CN-5CODE SEGMENT ASSUME DS:DATA,CS:CODE,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET STRl MOV AH,09H INT 21H MOV SI,OFFSET STR1MOV DI,OFFSET STR2MOV CX,CNADD SI,CN-1ADD DI,CN-1STDREP MOVSBMOV DX,OFFSET STR2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDS END START五、思考题 1)如果要求字符串从键盘中输入,应如何设计程序?2)用子程序方法,且不使用MOVSB指令来完成数据块的传输,应如何设计程序?实验七 EMU8086集成开发环境一、实验目的:掌握EMU8086的使用方法。二、实验内容:从键盘输入一行字符(以回车符结束),并按字母、数字及其字符分类计数,最后显示出这3个计数结果。要求在EMU8086集成开发环境中进行。三、编程思路 该题目要求掌握多分支、单循环程序设计方法。为了实现指定功能,应从以下几个方面考虑:(1)数据是由键盘输入产生的,为此应调用键盘输入中断程序。(2)确定使用多分支判断的设计。(3)确定循环程序的结构。四、参考程序清单data segment buf db 50 dup(?) count1 db 0 count2 db 0 count3 db 0 data ends code segment assume ds:data,cs:code main proc far push ds mov ax,0 push ax lea bx,buf input:mov ah,1 int 21h mov bx,al inc bx cmp al,13 jnz input lea bx,buf again: mov al,bx inc bx cmp al,13 jz ok cmp al,0 jb next2 cmp al,9 ja next1 inc count1 jmp again next1:cmp al,A jb next2 cmp al,Z ja next2 inc count2 jmp again next2:inc count3 jmp again ok: ret main endp code ends end第三章 硬件部分实验3.1 存储器实验实验名称:存储器实验实验目的:、熟悉静态RAM的使用方法,掌握8088微机系统扩展RAM的方法。、掌握静态RAM读写数据编程方法。实验内容:对指定地址区间的RAM(4000H4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H5FFH中。实验原理:半导体存储器是采用半导体器件作为存储器的,按照断电后存储的信息是否丢失,而分为两类:RAM和ROM。RAM:通称为易失性半导体存储器,断电后存储的信息就会丢失。ROM:通称为非易失性半导体存储器,断电后存储的信息不会丢失。易失性半导体存储器(RAM)按存储元件在运行中能否长时间保存信息而分为:静态存储器和动态存储器。静态存储器(SRAM):利用双稳态触发器来保存信息。在运行中,只要不断电,信息就不会失丢。动态存储器(DRAM):利用MOS电容存储电荷来保存信息。在运行中,需要不断刷新,才能保持信息不被丢失。实验电路:配有二片61C256静态RAM构成系统的64K基本内存,存放用户程序/数据,地址范围为00000H-0FFFFH,其中

温馨提示

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

评论

0/150

提交评论