微机原理与接口技术A指导书(共24页).doc
《微机原理与接口技术A指导书(共24页).doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术A指导书(共24页).doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 微机原理与接口技术A实验指导书天津理工大学光电系信息通信工程实验中心汇编语言程序的上机过程一、 建立汇编语言的工作环境汇编语言的工作环境基于DOS平台,建立在E盘的8086子目录中。为了建立、运行汇编语言程序,至少要在磁盘上建立以下文件:EDIT.COM ASM.EXE或 MASM.EXELINK.EXEDEBUG.COM其中 EDIT是DOS提供的全屏幕文本编辑程序。ASM.EXE是普通汇编程序,它不支持宏汇编,如果要用宏汇编,则必须使用MASM.EXE。LINK为连接程序。DEBUG为调试程序,它是运行、调试汇编语言程序必不可少的工具。 当用户需要编制汇编语言源
2、程序并在机器上运行,必须经过以下几个步骤:1、 调用编辑程序建立和修改扩展名为.ASM的汇编语言源文件。2、 源文件必须经过汇编,生成机器代码的目标文件。3、 经过连接,把目标文件与库文件及其他目标文件连接在一起,形成可执行文件。4、 运行可执行文件。二、 调用编辑程序EDIT建立汇编语言源程序(ASM 文件)源程序就是用汇编语言语句编写的程序,它必须以ASM为附加文件名。在EDIT下,通常用键盘输入源程序,此时源程序以ASCII字符形式存放在内存缓冲区。若输入过程有错,可以用EDIT的命令来修改,改正后存盘,于是在盘上就建立了一个源程序文件。EDIT是MS-DOS中的全屏幕编辑器,它的使用方
3、法可查阅手册。三、调用汇编程序MASM(或ASM)产生目标文件(OBJ文件)源程序建立后,必须经过汇编,以生成对应机器代码的目标文件,机器才可能运行。目标文件以OBJ为扩展名。汇编是由调用宏汇编程序MASM或汇编程序ASM来实现的。 以源程序ABC.ASM为例,汇编过程如下:E:8086MASM ABC.ASM此时汇编程序被调入,显示器将显示其版本号,并依次出现三行提示:Object filenameABC.OBJ:Source listingNUL.LST:Cross referenceNUL.CRF:汇编后产生三个文件,目标文件(.OBJ)、列表文件(.LST)及交叉符号表文件(.CRF)
4、。第一个是目标文件,在这个文件中操作码部分已变为机器码,但地址操作数只是一个可浮动的相对地址而不是内存的绝对地址。产生目标文件是我们进行汇编的主要目的,操作时打入回车就可以。第二个是列表文件,它以LST为扩展名,列表文件同时给出源程序和机器语言程序,使调试程序变得方便。LST文件可有可无,不需要,打入回车,如果需要,打入文件名、回车。第三个是交叉符号表文件,此表给出了用户定义的所有符号,对每个符号列出了将其定义的所在行号及引用的行号。交叉符号表可有可无,不需要,打入回车,如果需要,打入文件名、回车。汇编结束,汇编程序给出源程序中的错误信息,Warning Errors为警告性错误,Sever
5、Errors 为严重错误,前者指一般性错误,后者指语法性错误。若程序中存在这两类错误,则应重新调用编辑命令修改错误再进行汇编,直至汇编正确通过为止。四、调用连接程序LINK产生执行文件(EXE文件)汇编过程产生的目标文件OBJ中的地址操作数是可浮动的相对地址,不能直接上机执行,必须经过LINK命令连接以后才成为可执行的EXE文件。如果一个程序由多个模块组成,也应该用LINK将它们连接起来。以对ABC.OBJ进行连接为例,具体操作如下:E:8086 LINK ABC显示器将显示其版本号并依次出现三行提示Run FileABC.EXEList FileNUL.MAPLibraries.LIBLIN
6、K程序有两个输入文件OBJ和LIB。OBJ是需要连接的目标文件,LIB是需要用到的库文件。对.LIB如无特殊需要,打入回车,若需要,输入库名。LINK过程产生两个输出文件。一个是EXE文件,产生此文件是LINK过程的主要目的,对ABC.EXE回答。另一个是MAP文件,称为列表分配文件,它给出每个段在内存中的分配情况。对ABC.MAP,不需要回答,打入回车,若需要,输入文件名、回车。五、程序的执行汇编语言源程序经过汇编、连接以后生成的EXE文件,是可执行文件。建立了EXE文件,就可以在DOS 提示符下直接执行程序,执行程序时只要键入文件名回车即可。如:E:8086 ABC通常程序执行后,一次通过
7、的可能性很小,这就需要重复上述的编辑、汇编、连接和运行程序的全过程,直至程序运行正确。六、调试程序DEBUG 调试程序DEBUG是MS-DOS支持的动态排错程序,是一种使用广泛的强有力的汇编语言程序或二进制文件的调试工具。在DEBUG管理下,可以单步执行程序,也可以在程序中设置断点,可以显示和修改指定内存单元和区域的内容,也可以显示和修改CPU内部寄存器和标志位的内容,这样将便于寻找程序中的错误。用调试程序DEBUG发现错误,再通过编辑程序EDIT纠正错误。DEBUG的使用方法可参阅DOS手册。下面给出最常用的几个命令。1 如何调用DEBUGDEBUG有两种启动方法:C:DEBUG(文件名.扩
8、展名)或C:DEBUG第一种方式是DOS把DEBUG调入内存后DEBUG把被调试的程序调入内存。被调试程序装入后显示DEBUG提示符“”。第二种方式是,调用DEBUG后,立即显示提示符“”。2 最常用的DEBUG命令(1)反汇编命令UU address;从指定地址开始反汇编32个字节U ;从当前地址开始反汇编32个字节U address1 address2;对指定范围内的存储单元进行反汇编(2)显示存储单元命令DD address;从指定地址开始显示8*16个存储单元D;从当前地址开始显示8*16个存储单元D address1 address2;按指定范围显示存储单元内容(3)修改存储单元命令
9、EE address list;用命令中给定的内容表来替代指定范围内存单元内容例如:E DS:100 F3XYZ8D其中F3,X,Y,Z,8D各占一个字节,该命令可以用这五个字节来替代存储单元DS:100原先的内容。E address;显示指定地址单元的内容并等待输入新值需要输入新值,按数字键(两位十六进制数)不需要输入新值,按空格键,显示下一个存储单元内容(4)检查和修改寄存器内容的命令RR;显示CPU内部所有寄存器的内容和标志位状态给出13个寄存器的内容及标志寄存器中8个标志位状态R register name;显示和修改某个寄存器内容若不修改,按回车键,若修改,则键入欲修改的内容。RF;
10、显示和修改标志位状态若不修改,按回车键,若修改一个或多个标志,只需输入此标志相反值,与输入顺序无关。(5)运行命令GG命令用来启动运行一个程序或一段程序,格式为:G=address1 address2输入时等号必不可少。地址1指定了运行的起始地址,如不指定地址,则从当前CS:IP开始运行。后面的地址为断点地址,断点最多允许设置10个,当指令执行到断点时,就停止执行并显示当前所有寄存器的内容及标志位的状态和下一条将要执行的指令。用G命令时,一旦程序执行完,DEBUG显示Programterminated normally(程序正常结束),若还要执行此程序必须重新输入程序。(6)跟踪命令TT ad
11、dress;逐条指令跟踪从指定地址起执行一条指令后停下来,显示所有寄存器的内容和标志位的状态。若未指定地址,则从当前CS:IP开始执行。T address n;多条指令跟踪从指定地址开始,执行由跟踪条数n所决定的几条指令,每条指令执行后都将显示所有寄存器的内容及标志位的状态。(7)退出命令QQ;程序调试完,退出DEBUG,返回DOS。七、汇编语言程序的结构(程序格式)设计汇编语言程序必须严格遵循汇编语言程序的结构,一个标准的汇编语言程序框架结构如下:(在DOS环境下运行)DATA SEGMENT ;数据段 DATA ENDSSTACK SEGMENT PARA STACK STACK ;堆栈段
12、 STACK ENDSCODE SEGMENT ;代码段 ASSUMECS:CODE, DS:DATA, SS:STACK, ES:DATASTART: MOV AX,DATA CODE ENDS ENDSTART实验一 8086汇编语言程序设计初步一、实验目的1、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。2、熟悉8086指令系统中一些常用指令的功能和使用。3、学习数据传送和算术运算指令的使用方法。二、实验内容详细阅读汇编语言程序的上机过程。试编写将两个多位十进制数相加程序,要求两个加数均以ASCII码形式各自顺序存在以DATA1和DATA2为首的5个内存单元中(低
13、位在前),结果送回DATA1处。三、实验设备1、微型计算机一台2、EL-型微机原理实验开发系统一台四、程序参考流程图1、主程序参考流程图 2、加法子程序参考流程图开始开始设置被加数、加数地址指针被加数、加数以ASCII码表示的数字转化为非压缩BCD码形式显示被加数显示加数计数值(位数)送CX调用加法子程序,相加清除最低位进位显示相加结果执行ADC带进位相加返回DOSAAA十进制调整相加结果送被加数存储区相加结果转化为ASCII码表示的数字修改地址指针返回所有位全加完? N Y实验一参考程序清单CRLFMACROMOVDL, 0DHMOVAH, 02HINT21HMOVDL, 0AHMOV AH
14、, 02HINT21HENDMDATASEGMENTDATA1DB 33H, 39H, 31H, 37H, 34HDATA2DB 36H, 35H, 30H, 38H, 32HDATA ENDSSTACKSEGMENT PARA STACK STACKSTADB 100 DUP (?)STACKENDSCODESEGMENTASSUMECS:CODE, DS:DATA, SS:STACK, ES:DATASTART:MOVAX, DATAMOVDS, AXMOVSI, OFFSET DATA2MOVBX, 05CALLDISPLCRLFMOVSI, OFFSET DATA1MOVBX, 05
15、CALLDISPLCRLFMOVDI, OFFSET DATA2CALLADDAMOVSI, OFFSET DATA1MOVBX, 05CALLDISPLCRLFMOVAX, 4C00HINT21HDISPLPROCNEARDS1:MOVAH, 02HMOVDL, SI+BX-1INT21HDECBX JNZDS1RETDISPLENDPADDAPROCNEARMOVDX, SIMOVBX, 05AD1:SUBBYTE PTR SI+BX-1, 30HSUBBYTE PTR DI+BX-1, 30HDECBXJNZAD1MOVCX, 05CLCAD2:MOVAL, SIMOVBL, DIADC
16、AL, BLAAAMOVSI, ALINCSIINCDILOOPAD2MOVSI, DXMOVBX, 05AD3:ADDBYTE PTR SI+BX-1, 30HDECBXJNZAD3RETADDAENDPCODEENDSENDSTART 实验二 8086汇编语言程序设计一、 实验目的1、本实验为设计性实验,通过对基本DOS系统功能调用,串操作,编程方法和调试等知识点整合开出。 1、熟悉8086指令系统,学习基本的8086汇编语言程序设计方法。2、掌握提示信息的使用方法及8086串操作指令的使用方法。3、初步掌握调试修改程序的方法。二、 实验内容用串操作指令设计一个搜索关键字程序,实现在存储区
17、(长度为100H)中寻找关键字空格字符(20H),退出时给出是否找到的信息。三、实验设备1、微型计算机一台2、EL-型微机原理实验开发系统一台四、编程提示1、8086中用于字符串检索的指令为SCASB/SCASW,用AL中的字节或者AX中的字与位于ES段由DI寄存器所指的内存单元的字节或字相比较。通过前缀的控制,可以实现在DI所指的字符串中,寻找第一个与AL(或AX)的内容相同的字节或字。2、对于所有的串操作指令,都要注意方向标志的设置。指令CLD使方向标志DF清0,SI和DI自动增量修改,指令STD使DF置1,SI和DI自动减量修改。五、程序参考流程图1、主程序参考流程图 找到?用REPNZ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 指导书 24
限制150内