当前位置:文档之家› 微机原理实验指导书(2008-11-11)

微机原理实验指导书(2008-11-11)

《微机原理及应用》实验指导书张群英编写桂林工学院电子与计算机系2008-11-11目录汇编语言程序设计的实验环境及上机步骤 (3)实验一汇编语言程序上机过程与调试 (17)实验二顺序程序设计 (21)实验三分支程序设计 (22)实验四循环程序设计 (24)实验五子程序设计 (25)实验六显示程序设计 (26)实验七系统认识实验 (29)实验九中断特性及8259应用编程实验 (33)实验十8255并行接口应用实验 (45)实验十一8253定时/计数器应用实验 (50)第一部分:汇编语言程序设计的实验环境及上机步骤1.1汇编语言程序设计的实验环境汇编语言程序设计的实验环境为:80x86系列微型计算机一台机进行汇编语言程序设计所必需的编程工具一套。

目前被广泛使用的编程工具分别来自Microsoft和Borland两家公司。

1.1.1 Microsoft公司的汇编语言程序设计工具◆任意一种文本编辑器——用于编辑生成汇编语言源程序(*.ASM)◆小汇编程序ASM.EXE或宏汇编程序MASM.ESE——用于将汇编语言源程序(*.ASM)翻译成机器语言文件,即目标文件(*.OBJ)◆连接程序LINK.EXE——用于将目标文件连接生成可执行文件(*.EXE)◆调试程序DEBUG.EXE——用于对生成的可执行文件(*.EXE)进行逻辑错误检查。

1.1.2 Borland公司的Turbo系列汇编语言程序设计工具◆任意一种文本编辑器——用于编辑生成汇编语言源程序(*.ASM)◆汇编程序TASM.EXE——用于将汇编语言源程序(*.ASM)翻译成机器语言文件(*.OBJ)◆连接程序TLINK.EXE——用于将目标文件连接生成可执行文件(*.EXE)◆调试程序TD.EXE (Turbo Debugger) ——用于对生成的可执行文件(*.EXE)进行逻辑错误检查。

可以看出,进行汇编语言程序设计时需要的编程工具有:文本编辑器、汇编程序、连接程序以及调试程序,下面分别对它们进行简要介绍。

1.文本编辑器(Text Editor)在文本编辑器中,用户可以通过键盘输入汇编语言源程序,并可以对源程序进行编辑、修改以及存盘等操作。

不论使用哪一种文本编辑器,都应该把汇编语言源程序保存为*.ASM文件,即源程序的扩展名必须为“ASM”,否则,汇编程序将无法对其进行汇编。

2.汇编程序(Assembler)汇编程序用于将用户编写的汇编语言源程序(*.ASM)翻译成机器语言文件(*.OBJ),其主要功能可以概括为以下三点:(1)检查源程序中的语法错误,并给出错误信息。

(2)产生目标文件(*.OBJ)(3)展开宏指令(Microsoft公司的小汇编程序ASM.EXE无此功能)Microsoft公司和Borland公司这两家公司研制的汇编程序MASM和TASM基本上是相同的,且都在IBM PC系列机中得到广泛使用。

3.连接程序(Linker)经汇编后得到的二进制机器语言程序中的地址是“浮动”的,它只是一种逻辑地址,一次,汇编后得到的二进制目标文件(*.OBJ)是不能直接在计算机上运行的,必须对其进行连接装配后才能成为可执行文件(*。

EXE)。

不同版本的汇编程序有着与其配套的连接程序,也就是说,如果所生成的*.OBJ文件是使用Microsoft公司的汇编程序得到的,那么,对该*.OBJ文件进行连接是就应使用Microsoft公司的LIINK.EXE;如果使用Borland公司的汇编程序TASM生成目标文件,那么,对目标文件进行连接是就必须使用Borland公司的TLINK.EXE。

4.调试程序(DEBUG)调试程序用于在DOS环境下对已生成的可执行文件(.EXE或.COM)进行调试,一边法相程序中存在的逻辑或算法错误。

在对汇编语言源程序进行汇编是,汇编程序只对源程序语法错误进行检查,而对程序中存在的逻辑错误是无法进行检查的,如果汇编过程没有发现语法错误,即可生成OBJ文件,OBJ文件经过连接后生成可执行的EXE文件。

因此,经常会出现运行所生成的EXE文件无法得到正确结果的情况。

出现这种情况的原因通常是由源程序中存在的逻辑错误或算法错误引起的。

遇到这种情况后最简单的解决办法就是使用文本编辑器打开源程序文件(*.ASM)对其进行逻辑或算法错误检查,显然使用这种办法查找逻辑错误是非常困难的,尤其对那些逻辑关系复杂。

程序较长的源程序更是如此。

对逻辑错误或算法错误的检查最好的办法就是使用DEBUG程序对已生成的可执行文件进行调试。

通过DEBUG可以使程序逐段甚至逐条指令地执行,一边观察是否达到预期的功能或得出预测的结果,从而发现源程序在设计上存在的而逻辑错误、算法错误或其他一些缺陷。

初学者往往意识不到DEBUG程序的重要性,在程序汇编、连接生成可执行文件后,总是寄希望于程序一次运行成功,这往往是不显示的。

为了能很好地进行汇编语言程序实际,掌握DEBUG程序的使用是非常重要的,这已点务必请初学者注意。

本书专用以Microsoft公司研制的汇编语言程序设计工具(MASM.EXE,LINK.EXE和DEBUG.EXE)进行介绍。

1.2上机步骤汇编语言程序设计过程分成两个阶段:编写程序阶段和上机调试阶段。

编写程序阶段包括问题分析、确定算法以及手工编写程序等步骤。

如下图所示,汇编语言上机步骤包括编辑、汇编、连接和调试等过程。

(1)编辑源程序。

利用文本编辑工具输入事先已手工编写好的汇编语言源程序,生成一个汇编语言源程序的纯文本文件,并将其存储为扩展名为.ASM的文件。

如利用EDIT程序编辑源程序。

命令为:EDIT 源程序名.ASM(2)汇编源程序。

使用汇编程序(MASM)对.ASM文件进行汇编,生成目标代码文件,目标代码文件的扩展名是﹒OBJ,汇编器还可以生成列表文件和交叉参考文件,如果源程序有语法错误行,汇编器就不生成目标代码文件。

这时,必须重新编辑源程序,修改语法错误的行。

当发现源程序中的某些行含不确定因素时,汇编器会给出警告信息,但仍按缺省处理办法生成目标代码文件。

此时,可以重新编辑源程序,消除不确定因素。

命令为:MASM 源程序名.ASM(3)连接目标程序。

通过连接程序(LINK)将.OBJ文件连接装配成可在计算机上直接运行的可执行文件.EXE,此时,就可以在DOS命令行键入文件名来运行程序。

通常DOS平台上的可执行程序文件的扩展名是﹒EXE。

一般单个或者与库函数连接时,如果在目标代码文件或者库中找不到所需的连接信息,连接器就会发生错误提示信息,而不生成可执行程序文件。

这时,就要重新编辑源程序,并汇编源程序。

命令为:LINK 目标程序名.OBJ(4)调试可执行程序。

程序的动态调试是在形成可执行程序文件后,针对可执行程序进行的。

DEBUG是简单而有效的动态调试工具,利用调试工具动态地调试程序,找出程序中的问题。

如果发现程序中有问题,那么必须重新编辑、汇编源程序。

命令为:DEBUG 可执行程序名.EXE下面以两个简单的例子说明汇编源程序的上机过程。

例一:假定要在显示器显示如下一行信息:I am a student!根据要求编好的源程序如下:STACK SEGMENT STACKDB 200 DUP(0)STACK ENDSDA TA SEGMENTBUF DB 'I am a student!$'DA TA ENDSCODE SEBMENTASSUME CS:CODE,DS:DA TA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXLEA DX,BUFMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START那么,其在DOS状态下编辑、汇编、连接、运行源程序的过程如下:首先:假设已经在D盘上建立了名为masm的文件夹,其中拷贝了汇编程序MASM.EXE和连接程序LINK.EXE,我们以下的操作均在路径D:\masm> 下进行。

第一步:编辑源程序。

假定源文件名为XS﹒ASM,键入编辑命令(edit)和文件名后回车,界面如下:在编辑界面下输入源程序,指令用大写或小写字母均可,界面如下:程序输入完成,点击下拉菜单选择Save项保存,再次点击下拉菜单选择Exit项即可退回到DOS 状态,源程序的编辑就完成了,界面如下:第二步:汇编源程序xs.asm,键入汇编命令(masm)和文件名后回车,界面如下:对于简单程序(比如本例),在系统出现的3个选项中选择回车即可,系统提示没有出错,即表明源程序汇编通过,已经生成了名为xs.obj的目标文件;若系统提示出错,则应该重新回到编辑状态将出错的地方更正并保存后方可再次进入汇编过程。

界面如下:第三步:连接目标程序文件xs.obj, 键入连接命令(link)和文件名后回车,界面如下:在系统出现的3个选项中选择回车即可,系统显示的警告“no stack segment”不会影响程序的执行,此时,可执行程序xs.exe已经生成了。

界面如下:在DOS状态下键入程序名xs.exe并回车,执行该程序,界面如下:显示器上将显示出“I am a student!”,并重新回到DOS状态。

由显示结果即可判断程序是否达到预定要求。

若未得到预期的结果,可检查XS﹒ASM文件内容,修改错误,再次汇编、连接、运行,直到满意为止。

界面如下:对于程序的执行结果没有在显示器上显示出来的,则必须要进入到调试状态才能探查程序的执行结果,并进行相应的完善,下面将以一个求数据累加所得的和作为例子。

例二:编制程序,求10个字节类型的数据的和,源程序如下:data segmenta db 1,2,3,4,5,6,7,8,9,10he db ?data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axlea bx,amov cx,10mov al,0next: add al,[bx]inc bxloop nextmov he,almov ah,4chint 21hcode endsend start其在DOS状态下编辑、汇编、连接、运行源程序的过程如下:首先:假设已经在D盘上建立了名为masm的文件夹,其中拷贝了汇编程序MASM.EXE和连接程序LINK.EXE,我们以下的操作均在路径D:\masm> 下进行。

第一步:编辑源程序。

假定源文件名为qiuhe.asm,键入编辑命令(edit)和文件名后回车,界面如下:在编辑界面下输入源程序,指令用大写或小写字母均可,界面如下:程序输入完成,点击下拉菜单选择Save项保存,再次点击下拉菜单选择Exit项即可退回到DOS 状态,源程序的编辑就完成了,界面如下:第二步:汇编源程序qiuhe.asm,键入汇编命令(masm)和文件名(可在文件名后加分号)回车,界面如下:键入汇编命令(masm)和文件名后加分号再回车,系统将不再给出选项,而是直接生成目标文件,若源程序中有错误,则给出相应的出错信息;若系统提示出错,则应该重新回到编辑状态将出错的地方更正并保存后方可再次进入汇编过程。

相关主题