微机原理及接口技术
实验指导书
南京工程学院电力工程系电子信息教研室
二00九年三月
1
目 录
第一章 基础软件实验 ............................................................................................................. 3 实验一 DEBUG入门 ............................................................................................................... 3 实验二 8086指令观察 ......................................................................................................... 5 实验三 顺序结构程序设计 .................................................................................................. 7 实验四 分支结构程序设计 .................................................................................................. 9 实验五 循环结构程序设计 ................................................................................................. 11 实验六 子程序设计 ............................................................................................................ 13 第二章 基础硬件实验 ........................................................................................................... 14 实验七 8255并行输入输出接口实验 ................................................................................. 14 实验八 8253定时计数器实验 ............................................................................................. 15 实验九 8259A中断控制器实验 ........................................................................................... 17 实验十 8251可编程通信实验 ............................................................................................. 20 实验十一 并行D/A实验 ...................................................................................................... 23 实验十二 并行A/D实验 ...................................................................................................... 24 第三章 附 录 ....................................................................................................................... 26 附录一 汇编语言上机实验基础 ........................................................................................ 26 1.1 汇编语言程序上机实验过程 ....................................................................................... 26 1.2 宏汇编程序MASM ........................................................................................................... 27 1.3 调试程序DEBUG ............................................................................................................. 29 1.4 调试程序TDEBUG ........................................................................................................... 38 1.5 EMU 8086 ...................................................................................................................... 43 1.6 总结 ................................................................................................................................ 46 1.7 实验及实验报告要求 .................................................................................................... 46 附录二 实验仪介绍 ............................................................................................................ 47 附录三 硬件结构 ................................................................................................................ 49 附录四 星研集成环境软件 ................................................................................................ 66 4.1 软件安装简介 ................................................................................................................ 66 4.2 如何使用星研集成环境软件 ........................................................................................ 67
2
第一章 基础软件实验
基础软件实验部分共有六个实验组成,通过对这些实验程序的编写、调试,使学生熟悉8086/8088的指令系统等,了解程序设计过程,掌握汇编程序设计方法以及如何使用实验系统提供的各种调试、分析手段来排除程序错误。
实验一 DEBUG入门
一、实验目的和要求
1. 学习、了解DEBUG常用命令(A、U、D、E、R、T、G、Q)的使用方法。 2. 了解DEBUG中FLAGS各标志的表示方法。 3. 通过DEBUG常用命令掌握部分指令的功能。
二、实验任务
用DEBUG命令输入部分指令,执行并观察执行的结果。
三、实验设备和软件
PC机、DEBUG.EXE
四、预习内容和要求
1.调试程序DEBUG的常用命令。(参考附录一) 2. DEBUG中FLAGS各标志的表示方法,如下:
状态标志显示符号 标志位 溢出OF 方向DF 中断IF 符号SF 零位ZF 辅助AF 奇偶PF 进位CF 状态 显示 有/无 减/增 开/关 负/正 零/非 有/无 偶/奇 有/无 OV/NV DN/UP EI/DI NG/PL ZR/NZ AC/NA PE/PO CY/NC 3.8086/88各类指令
五、实验内容与步骤
1. 数据传送类指令观察
首先用A命令从地址2000:0000开始依次逐条输入以下所有指令,然后用T命令单步执行每一条指令。其他要求请参见各条指令的注释部分。通过实验理解每条指令的功能。 MOV AL,78H ;用R命令显示AL的值 MOV AX,1234H ;用R命令显示AX的值 MOV BX,0200H ;用R命令显示BX的值 MOV [BX],AX ;用D命令显示存储器单元中的值 MOV SI,[0200H] ;用R命令显示SI的值 MOV DH,AL ;用R命令显示DH的值 MOV WORD PTR 2[BX],5600H ;用D命令显示存储器单元中的值 MOV CX,-1233H[BX+SI] ;用R命令显示CX的值 PUSH AX ;用D命令显示堆栈情况 PUSH 2[BX] ;用D命令显示堆栈情况 PUSHF ;用D命令显示堆栈情况,和FLAGS标志对比 POP [BX] ;用D命令显示存储器单元中的值 POP AX ;用R命令显示AX的值 POPF ;查看FLAGS各标志情况
3
XCHG AX,DX ;用R命令显示AX和DX XCHG DL,2[BX] ;用R命令、D命令分别查看DL和存储器单元 LEA DX,-FF00H[BX+SI] ;查看DX的值 LAHF ;查看AH的值 NOT AH ;查看AH的值 SAHF ;查看FLAGS低8位标志情况 在实验过程中记录指令执行的结果,并在实验报告中以表格的形式体现。
2. 查表程序
首先用E命令从DS:0200H开始的内存中写入一个0~9的平方表,然后用A命令输入以下查表程序并执行,观察查表结果。 MOV AL,5 MOV BX,0200H XLAT 提示:(1)输入的平方值表必须转换成十六进制数。
(2)R命令只能查看十六位寄存器内容,不能查看8位寄存器内容。
六、实验报告
实验报告要求参考附录一。
4
实验二 8086指令观察
一、实验目的和要求
1. 掌握汇编语言程序编辑、汇编、链接和调试的基本概念。
2. 掌握在PC机上建立、汇编、链接和运行8088汇编语言程序的过程。 3. 巩固DEBUG常用命令的使用方法。
4. 通过观察深入掌握数据传送类、算术运算类和逻辑运算类等各类指令的功能。
二、实验任务
编辑汇编程序,并汇编、链接和调试程序,验证结果。
三、实验设备和软件
PC机、MASM.EXE、LINK.EXE、DEBUG.EXE
四、预习内容和要求
1. 预习附录一的汇编语言程序上机实验过程、宏汇编程序MASM、调试程序DEBUG的内容。 2. 预习实验内容程序,通过实验验证结果。
五、实验内容
1. 寻找最大最小数程序实验
设内存缓冲区从BUF单元开始,存放若干个单字节数,其数据长度在BUF单元,要求找出最大数送MAX单元,最小数送MIN单元。
源程序:
;FILENAME:MAXMIN.ASM DATA SEGMENT BUF DB 9,-4,55,78,-9,0,41,124 B1 EQU $-BUF MAX DB ? MIN DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV CH, 0 MOV CL, B1 ;CX=数据个数 DEC CX ;循环次数 MOV AL, BUF ;第一个数据送AL寄存器 MOV MAX, AL ;假设第一个数是最大数 MOV MIN,AL ;假设第一个数是最小数 MOV BX, OFFSET BUF+1 ;下一个数据地址 LAST: MOV AL, [BX] CMP AL, MAX ;比较 JG GREAT CMP AL, MIN JL LESS JMP NEXT GREAT: MOV MAX, AL ;大数->MAX JMP NEXT
5