计算机原理及接口技术
实验指导书
计算机硬件实验室
1
前言
本教材是与“微机原理与接口技术”课程配套的实验教材,共安排了6个实验,覆盖了普通高等学校“微机原理与接口技术”实验的基本内容,具有基础性、实用性、趣味性和提高性,为学生提高分析问题和解决问题的能力提供了一种好的途径。
本书的特点是精明简要,在保证基本实验的基础上尽量缩小篇幅,主要涉及了最常用的接口芯片实验,如定时器/计数器电路8253、并行接口电路8255、串行接口电路8251、A/D转换电路ADC0809等。书中实验程序都经调试通过。只要读懂硬件电路与相应的汇编语言程序就能顺利做出实验。本书程序框图,与汇编语言程序均已给出,可读性强,避免了学生在实验上花费大量时间。
本书以充实、巩固课程学习、培养科学实验技能和严谨的工作作风为目的,可作为普通高校计算机专业相应课程的实验教材,也可供电子工程技术人员参考。
本书由刘肃、李琦、张军老师编写,耿恒山老师进行了编审。敬请读者提出宝贵意见。
编者 2001年2月
2
目录
1.前言
2.汇编语言程序的建立和执行???????????????????(3) 3.8253计数器/定时器实验???????????????????(7) 4.8255A并行口实验<一>???????????????????(9) 5.8255A并行口实验<二>????????????????????(13) 6 A/D 实验 ??????????????????????????(14) 7.LED显示实验?????????????????????????(23) 8.8251A串行口实验???????????????????????(30)
3
汇编语言程序的建立和执行
《TPC—1型十六位微机实验培训系统》要求用汇编语言来编写程序。现在,我们来说明汇编语言程序从建立到执行的过程。
要建立和运行汇编语言程序,系统盘上应该首先有如下文件: EDIT.COM 编辑程序 ASM.EXE 汇编程序 (或MASM.EXE) 宏汇编程序 LINK.EXE 连接程序 DEBUG.COM 调试程序
其中ASM.EXE是普通汇编程序,它不支持宏汇编,如果要用宏汇编,则必须用MASM.EXE。
下面,以建立和执行用户程序ABC.EXE为例来说明上机过程。
1.用EDIT命令建立汇编语言源程序(ASM文件)
源程序就是用汇编语言的语句编写的程序,它不能被机器识别.源程序必须以 ASM为附加文件名.
例如打入命令:
A>EDIT ABC.ASM (每个命令后面应输入回车,以下均如此) 此时用户可以通过编辑程序来输入用户程序ABC.ASM。至于EDIT.EXE编辑程序的使用方法,可以按F1键获取帮助。
2.用 ASM(或者MASM)命令产生目标文件[OBJ文件]
源程序建立以后,就可以用汇编程序ASM.EXE(或者MASM.EXE)进行汇编。所谓汇编,实际上就是把以 ASM为附加名的源文件转换成用二进制代码表示的目标文件,目标文件以 OBJ为附加名。汇编过程中,汇编程序对源文件进行二次扫描,如果源程序中有语法错误,则汇编过程结束后,汇编程序会指出源程序中的错误,这时,用户可以再用编辑程序来修改源程序中的错误。最后,得到没有语法错误的 OBJ文件。
例如,对 ABC.ASM的汇编过程如下: A >MASM ABC.ASM
此时,汇编程序给出如下回答:
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp1981—1985,1987,all rights reserved, Object filename [EX MOVS.OBJ]: Source listing [NUL.LIST]:ABC Cross reference[NUL.CRFI:ABC 如果被汇编的程序没有语法错误,则屏幕上还给出如下信息: Warning Severs Errors Errors
4
0 0
从上面的操作过程中可以看到,汇编程序的输入文件就是用户编写的汇编语言源程序,它必须以 ASM为文件扩展名。汇编程序的输出文件有三个:
第一个是目标文件,它以 OBJ为扩展名,产生 OBJ文件是我们进行汇编操作的主要目的,所以这个文件是一定要产生,也一定会产生的,操作时,这一步只要打人回车就行了;
第二个是列表文件,它以 LST为扩展名,列表文件同时给出源程序和机器语言程序,从而,可以使调试变得方便,列表文件是可有可无的,如果不需要,则在屏幕上出现提示信息[NUL.LIST]:时,打入回车即可,如果需要,则打入文件名和回车;
第三个是交叉符号表,此表给出了用户定义的所有符号,对每个符号都列出了将其定义的所在行号和引用的行号,并在定义行号上加上“#”号,同列表文件一样,交叉符号表也是为了便于调试而设置的,对于一些规模较大的程序,交叉符号表为调试工作带来很大方便。当然,交叉符号表也是可有可无的,如不需要,那么,在屏幕上出现提示信息[NUL.CRF]:时,打入回车即可。
汇编过程结束时,会给出源程序中的警告性错误[Warning Errors]和严重错误[Severs Errors],前者指一般性错误,后者指语法性错误,当存在这两类错误时,屏幕上除指出错误个数外,还给出错误信息代号,程序员可以通过查找手册弄清错误的性质。
如果汇编过程中,发现有错误,则程序员应该重新用编辑命令修改错误,再进行汇编,最终直到汇编正确通过。要指出的是汇编过程只能指出源程序中的语法错误,并不能指出算法错误和其他错误。
3.用 LINK命令产生执行文件(EXE文件)
汇编过程根据源程序产生出二进制的目标文件(OBJ文件),但 OBJ文件用的是浮动地址,它不能直接上机执行。所以还必须使用链接程序(LINK)将OBJ文件转换成可执行的 EXE文件。 LINK命令还可以将某一个目标文件和其他多个模块(这些模块可以是由用户编写的,也可以是某个程序库中存在的)链接起来。
具体操作如下(以对ABC.OBJ进行链接为例): A> LINK ABC 此时,在屏幕上见到如下回答信息:
IBM 5552 Multistation Linker 2.00(C) Copyright IBM Corp.1985 Run File[ABC.EX E]: List File[ NUL.MAP]: Libraries[.LIB]:
Warning: NO STACK Segment
LINK命令有一个输入文件,即 OBJ文件。
LINK过程产生两个输出文件,一个是扩展名为 EXE的执行文件,产生此文件当然是LINK过程的主要目的。另一个是扩展名为MAP的列表分配文件,有人也称它为映象文件,它给出每个段在内存中的分配情况。比如某一个列表分配文件为如下内容:
5