欢迎来到天天文库
浏览记录
ID:48681603
大小:927.50 KB
页数:76页
时间:2020-02-27
《微型计算机原理与接口技术实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微型计算机原理与接口技术实验讲义目录第一章实验环境及实验步骤简介3一DOS环境下的汇编语言编程环境简介3二Debug的使用简介8第二章实验内容17实验一算术运算编程实验17实验二逻辑运算与移位操作编程实验19实验三数据串传送和查表程序20实验四分支程序设计21实验五循环程序设计24实验六子程序设计28实验七数制编码转换编程实验34实验八字符及字符串的输入/输出编程实验(设计性实验)38第三章综合性实验44实验九发声系统程序编程设计44实验十中断实验50附录一8086指令系统一览表56附录二8086指令对标志位的影响63附录三8086宏汇编常用伪指令表64附录四ASCII码表66附
2、录五DOS系统功能调用(INT21H)67附录六BIOS系统功能调用72附录七Debug命令表74第一章实验环境及实验步骤简介一、DOS环境下的汇编语言编程环境简介1.汇编语言源程序的汇编过程汇编语言源程序的汇编过程是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中以ASCII码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3个文件:扩展名为.OBJ的目标文件、扩展名为.LST的列表文件和扩展名为.CRF的交叉索引文件。目标文件是必须建立的,它包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但该
3、文件中的操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。列表文件(.LST)中包含了源程序的全部信息(包括注释)和汇编后的目标程序,列表文件可以打印输出,可供调试检查用。交叉索引文件(.CRF)是用来了解源程序中各符号的定义和引用情况的。.LST和.CRF两个文件不是必须建立的,可有有无,可以通过汇编时的命令加以选择。在对源程序文件(ASM文件)汇编时,汇编程序将对ASM文件进行两遍扫描,若程序文件中有语法错误,则结束汇编,汇编程序将指出源程序中存在的错误,这时应返回编辑环境修改源程序中的错误,再经过汇编,直到最后得到无错误的目标程序,即OBJ文件。因此,汇编程序的主要
4、功能可以概括为以下三点:(1)展开宏指令;(2)检查源程序中的语法错误,并给出错误信息;(3)产生目标程序文件(OBJ文件),并可给出列表文件(.LST文件)。汇编程序是系统提供的用于汇编的系统软件,目前常用的汇编程序有Microsoft公司推出的宏汇编程MASM(MACROASSEMBLER)和BORLAND公司推出的TASM(TURBOASSEMBLER)两种。Microsoft公司推出有宏汇编程序MASM和小汇编程序ASM两种,二者的区别在于:MASM有宏处理功能,而ASM没有宏处理功能,因此,MASM比ASM的功能强大,但MASM需要占据较大的内存空间,当内存空间较小时(
5、如64KB),只能使用ASM。2.目标程序的连接过程汇编后产生的目标程序(OBJ文件)并不是可执行程序文件(EXE文件),还不能直接运行,它必须通过连接程序(LINK)连接成一个可执行程序后才能运行。连接程序进行连接时,其输入有两个部分:一个是目标文件(.OBJ),目标文件可以是一个也可以是多个,可以是汇编语言经汇编后产生的目标文件,也可以是高级语言(例如C语言)经编译后产生的目标文件;另一个是库文件(.LIB),库文件是系统中已经建立的,主要是为高级语言提供的。连接后输出两个文件,一是扩展名为.EXE的可执行文件,另一个是扩展名为.MAP的内存分配文件。.MAP文件是连接程序的
6、列表文件,又称为连接映像(LinkMap),它给出每个段在存储器中的分配情况,该文件可有可无。.EXE文件可以在操作系统下执行,还可以用DEBUG进行调试。3.汇编语言程序设计上机过程举例编写程序,判断一个年份是否是闰年。汇编语言程序设计上机过程如图1.1所示。图1.1汇编语言程序上机过程(一)用编辑程序EDIT建立汇编语言源程序文件(ASM文件)例如,编写程序,判断一个年份是否是闰年的汇编语言源程序,可以在DOS模式下用编辑程序EDIT.EXE建立汇编语言源程序文件ABC.ASM,注意文件名的扩展名必须是.ASM。也可以在Windows2000或者在WindowsXP环境下鼠标
7、单击“开始”→“运行”,在“运行”中输入“CMD”进入DOS模式,运行EDIT软件,例如:C>EDITABC.ASM进入EDIT的程序编辑画面时,输入汇编语言源程序如下:DATASEGMENTINFONDB0DH,0AH,'Pleaseinputayear:$'YDB0DH,0AH,'Thisisaleapyear!$'NDB0DH,0AH,'Thisisnotaleapyear!$'WDW0BUFDB8DB?DB8DUP(?)DATAENDSSTACKSEGMENT'stack
此文档下载收益归作者所有