《微机原理与接口技术》实验指导书9.docx
- 文档编号:11663270
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:72
- 大小:642.18KB
《微机原理与接口技术》实验指导书9.docx
《《微机原理与接口技术》实验指导书9.docx》由会员分享,可在线阅读,更多相关《《微机原理与接口技术》实验指导书9.docx(72页珍藏版)》请在冰豆网上搜索。
《微机原理与接口技术》实验指导书9
微机原理与接口技术
实验指导书
计算机综合实验中心
2005年8月
目录
实验要求…………………………………………………………………3
第一部分微机原理及汇编程序设计…………………………………4
实验一、认识Tddebug集成操作软件…………………………………4
实验二、I/O程序设计…………………………………………………9
实验三、分支程序设计…………………………………………………11
实验四、循环程序设计…………………………………………………13
实验五、运算类程序设计………………………………………………15
实验六、代码转换程序设计……………………………………………19
实验七、宏指令应用……………………………………………………24
实验八、字符串处理……………………………………………………26
实验九、数据表格处理…………………………………………………28
实验十、子程序及软中断程序设计……………………………………29
第二部分接口部分实验…………………………………………………33
实验十一、PC机内部8259中断应用………………………………33
实验十二、PCI总线中断应用………………………………………39
实验十三、8254定时/计数器应用……………………………………45
实验十四、8255并行接口应用…………………………………………53
实验十五、交通灯控制…………………………………………………58
附录一TD-PIT-B实验系统的硬件环境………………………………60
实验要求
预习实验内容
1.明确本次实验目的及任务,了解和掌握实验所需的理论知识及相关接口芯片的工作原理。
2.通过阅读示例程序,掌握编程方法及相关技巧。
3.对每次实验,选择其中一个项题目自己设计编写程序。
实验过程
1.带上理论课教材、实验指导书及准备的实验程序。
2.若为接口电路,请关闭电源搭接线路,检查无误后,再开电源。
3.调试程序,记录结果。
4.实验结束后,请关闭电源,将各实验器材归位,清洁自己的桌面。
编写实验报告
1.实验题目。
2.分析设计思想,绘制实验原理图、流程图。
3.程序清单及相关注释。
4.分析实验结果。
5.说明在实验过程中遇到了哪些问题,是如何处理的。
6.收获体会,不足之处和今后应注意的问题等。
注意事项
1.实验以前,应确保PCI总线扩展卡与实验箱间扁平电缆连接的正确性。
2.实验前后应仔细检查实验箱,防止导线、元件等物品落入装置内,导致线路短路、元件损坏。
3.爱护实验设施,插接、拔取排线时,手握白色插头,不得从线中间拉取。
4.实验箱电源关闭后,不能立即重新开启。
关闭与重新开启之间至少应有30秒间隔。
第一部分微机原理及汇编程序设计
实验一、认识Tddebug集成操作软件
一.实验目的
1.熟悉汇编程序的开发过程。
2.认识Tddebug集成操作软件。
3.掌握在Tddebug集成环境中编辑、编译、连接汇编语言程序方法。
4.掌握INT21H软件中断来调用DOS内部子程序的方法
二.实验设备
PC微机一台
三.汇编语言程序的开发过程
汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。
1、源程序的编辑
E:
>EDITTEST.ASM
编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。
2、源程序的编译
E:
>TASMTEST.ASM
编译也称为汇编,就是利用汇编器(如TASM或MASM)对源程序进行编译,生成扩展名为OBJ的目标文件。
在编译过程中,检查语法错误,若有错,则不生成目标代码文件,并给出错误信息。
根据错误信息应返回到编辑状态,修改源程序。
3、目标程序的链接
E:
>TLINKTEST.OBJ
链接过程是利用链接程序(如TLINK或LINK)将用户目标程序和库文件链接、定位,生成扩展名为EXE的可执行文件。
链接时,如果链接文件找不到所需要的链接信息,则发出错误信息,不生成可执行文件。
4、调试可执行程序
E:
>TDTEST.EXE
如果生成的EXE文件运行后,并没有按照设计意图运行,就需要对程序进行调试,找出错误。
再对源程序进行修改,即重复进行编辑、编译、链接、调试,直到生成完全正确的可执行文件为止。
四.Tddebug集成操作软件使用说明
1.该软件是集编辑(Edit.exe)、编译(Tasm.exe)、连接(Link.exe)和调试(TD.exe)等多个功能于一体,可在DOS环境下运行,为用户提供了一个学习微机原理的实验平台。
2.启动TddebugD:
\wjyl>Tddebug
若启动成功,进入主界面。
3.Tddebug的菜单结构
主菜单子菜单菜单说明
Edit编辑源文件(.asm)
Compile——Compile编译源文件(.asm)
——Link连接目标文件(.obj)
——BuildAll编译和连接
Pmrun进入保护模式调试状态
Rmrun——Run运行实模式程序(.exe)
—— Debug进入实模式调试状态(.exe)
Help版本信息
Quit 退出Tddebug
4.菜单选择
(1)快捷键选择主菜单:
ALT+热键(E,C,P,R,H,Q)
(2)按左右键或直接使用快捷键在主菜单之间切换。
使用上下键可选择子菜单中的菜单项。
5.执行菜单项
选中要执行的菜单项,键入Enter键,系统弹出对话框,输入需操作的文件名,以Enter键结尾,取消操作按Esc键。
6.实模式调试窗口说明
(1)键入Alt+R选择Rmrun主菜单的Debug子菜单弹出实模式调试窗口。
此时可能会叠加一个报告无符号表的对话框,按Esc键关闭该对话框。
(2)该窗口实际是TurboDebugger调试器窗口,简称TD。
其窗口的划分如图1-1所示。
主菜单条
代码显示调试区
寄存器显示调试区
标志寄存器显示调试区
内存数据显示调试区
堆栈显示调试区
快捷键操作提示区
图1-1TurboDebugger调试窗口划分图
(3)主菜单中包含了File、Edit、View、Run、Breakpoints、Data、Options、Windows和Help共9个菜单项。
可使用热键选择相应的菜单。
在调试程序或操作调试器中会使用一些快捷键来实现一些功能,下面将列出常用功能的快捷键及实现功能。
●快捷键:
F1:
显示帮助窗口
F2:
设置/清除断点
F4:
执行到光标处
F5:
放大/缩小窗口
F7:
单步执行
F8:
单句执行
F9:
运行程序
F10:
激活主菜单
Ctrl+Break:
终止程序执行
Alt+X:
退出TD
Tab:
切换焦点区域
●当焦点区域在寄存器显示区中时:
Ctrl+R:
切换16位/32位通用寄存器并显示
Ctrl+I:
使光条指示寄存器的内容加1
Ctrl+D:
使光条指示寄存器的内容减1
Ctrl+Z:
使光条指示寄存器的内容清零
Ctrl+C:
手动修改光条指示寄存器的内容
●当焦点区域在数据显示区中时:
Ctrl+D:
修改数据显示格式
Ctrl+G:
指定需要显示的内存区域首地址
Ctrl+S:
查找指定的字节值表
Ctrl+C:
修改光标当前指示存储单元的内容
●当焦点区域在代码显示区中时:
Ctrl+G:
指定需要显示的代码区域首地址
Ctrl+S:
查找指定的指令
数字键/字符:
修改光标当前指示指令
五.实验内容及说明
1.实验内容:
数据传送实验
1)编程将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
参见示例出程序。
2)修改此程序,采用字符串传送指令完成。
2.实验中使用DOS功能调用(INT21H):
参见教材《32位微型计算机原理与接口技术》89页
(1)显示字符串
入口:
AH=09H
调用参数:
DS:
DX=串首地址,‘$’为结束字符。
(2)返回DOS系统
入口:
AH=4CH
调用参数:
AL=返回码
3.有关字符串的操作指令
参见教材《32位微型计算机原理与接口技术》62页
4.实验目的:
通过对该程序进行调试,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各个寄存器及数据区的内容。
六.实验步骤
1.运行Tddebug软件,选择Edit菜单编写实验程序
2.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。
3.使用Rmrun菜单中的Run运行程序,观察运行结果。
4.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。
单步执行数据传送指令后,观察各寄存器及数据区的内容。
过程如下:
1)按F7单步执行,在代码区中有一个三角,表示正在执行的指令。
每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。
2)检查内存数据区的内容,关键是找出用户程序的数据段和附加段:
●方法1:
在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:
“DS或ES寄存器的值:
偏移地址”,即可显示用户指定的数据区
●方法2:
选择菜单View|Dump,弹出内存数据显示窗口。
3)查看执行结果:
按Alt+F5,切换到用户窗口。
5.更改数据区中的数据,考察、调试程序的正确性。
七.参考程序清单
;数据传送实验,采用相对寻址方式
DDATASEGMENT;定义源数据段
MSRDB"HELLO,WORLD!
$"
LENEQU$-MSR
DDATAENDS
EXDASEGMENT;定义附加数据段
MSDDBLENDUP(?
)
EXDAENDS
MYSTACKSEGMENTSTACK;定义堆栈段
DW20DUP(?
)
MYSTACKENDS
CODESEGMENT;定义代码段
ASSUMECS:
CODE,DS:
DDATA,ES:
EXDA
START:
MOVAX,DDATA
MOVDS,AX;装载数据段寄存器
MOVAX,EXDA
MOVES,AX;装载附加数据段寄存器
MOVSI,OFFSETMSR
MOVDI,OFFSETMSD
MOVCX,LEN
MOVBX,0
NEXT:
MOVAL,MSR[BX];开始传输数据
MOVES:
MSD[BX],AL
INCBX
LOOPNEXT
PUSHES
POPDS;将附加段寄存器指向的段值赋给数据段寄存器
MOVDX,OFFSETMSD
MOVAH,9
INT21H;显示字符串
MOVAX,4C00H
INT21H;返回DOS状态
CODEENDS
ENDSTART
实验二、I/O程序设计
一.实验目的
1.理解软中断的调用方法及中断过程。
2.掌握INT21H软件中断来调用DOS系统I/O子程序的方法。
3.掌握将存储在内存单元中的数据在屏幕上显示的方法。
4.掌握从键盘输入信息到内存的方法。
二.实验设备
PC微机一台
三.实验预习要求
1.复习DOS功能调用(INT21H)中用于字符输入(功能号为01H)、字符输出(功能号为02H)、字符串输入(功能号为0AH)以及字符串输出(功能号为09H)的调用方法。
参见教材《32位微型计算机原理与接口技术》89页。
2.阅读示例程序,掌握输入/输出方法。
3.从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。
四.实验内容
1.【示例】:
将指定数据区中一个字节的数据以十六进制数形式显示在屏幕上。
设计思路:
首先将该数以十六进制数形式分解,然后将每一位分别转换为ASCII码送屏幕显示。
其中0H~9H之间的数加30H,即可得0H~9H的ASCII码,而AH~FH的ASCII码,则需再加7H,参见表5-1。
参考程序流程如图2-1所示。
示例程序参见参考程序清单。
2.编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。
3.从键盘输入两个1位十进制数,计算二者之和,并将结果显示在屏幕上。
4.编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上,例:
5=00000101B
五.实验说明
存储在内存单元中的数据要显示在屏幕上,必须首先将一个数据区中的数分解为各位不同进制的数(参见表5-1),然后转换为字符,通过DOS功能调用(INT21H)完成显示。
例:
1)显示单个字符
MOVAH,02H
MOVDL,待显示字符的ASCII码
INT21H
2)键盘输入并回显
MOVAH,01H
INT21H
得到按键的ASCII码,存放于AL中
六.实验步骤
1.画出实验流程图。
2.运行Tddebug软件,选择Edit菜单编写实验程序
3.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。
4.使用Rmrun菜单中的Run运行程序,观察运行结果。
5.使用Rmrun菜单中的Debug调试程序。
单步执行指令,观察各寄存器及数据区的内容。
6.更改数据区中的数据,考察程序的正确性。
七.参考程序清单及流程
;将指定数据区SD的数据以十六进制数形式显示在屏幕上
DATASEGMENTUSE16
MESDB'Showaashex:
',0AH,0DH,'$'
SDDB'a'
DATAENDS
CODESEGMENTUSE16
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMES;显示提示信息
MOVAH,09H
INT21H
MOVSI,OFFSETSD
MOVAL,DS:
[SI]
ANDAL,0F0H;取高4位
SHRAL,4
CMPAL,0AH;是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;显示字符
MOVAH,02H
INT21H
MOVAL,DS:
[SI]
ANDAL,0FH;取低4位
CMPAL,0AH
JBC3
ADDAL,07H
C3:
ADDAL,30H
MOVDL,AL;显示字符
MOVAH,02H
INT21H
MOVAX,4C00H;返回DOS
INT21H
CODEENDS
ENDSTART
实验三、分支程序设计
一.实验目的
1.掌握比较指令、条件转移指令的用法
2.掌握分支结构程序的组成
3.掌握分支程序的设计、调试方法
二.实验设备
PC微机一台
三.实验预习要求
1.复习比较指令、条件转移指令的用法。
2.阅读示例程序,掌握分支编程方法及相关技巧。
3.从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。
四.实验内容
1.【示例】判断X的大小,并根据判断结果以不同方式分别显示。
2.键入一个数,判断数是否在5 3.编写程序,在屏幕上显示一组菜单,根据键盘输入的菜单编号,提示你选择的菜单名。 4.从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。 五.实验要求及说明 1.判断X的大小,并根据判断结果以不同方式分别显示 设NUMBER单元的数X以及数值N1,N2均为单字节无符号数,请判断X的大小,并根据判断结果分别显示: N1<=X<=N2,或X 参见程序清单 2.键入一个数,判断数是否在5 3.编写程序,在屏幕上显示一组菜单,根据键盘输入的菜单编号,提示你选择的菜单名。 假设在屏幕上显示的菜单如下: 1………………………………Open 2………………………………Save 3………………………………Copy 4………………………………Exit (Pleasechoose1,2,3,OR5)—— 若输入1,则显示“IchooseOpen”后程序结束;若输入2,则显示“IchooseSave”后程序结束;若输入3,则显示“IchooseCopy”后程序结束;若输入4,则显示“IchooseExit”后程序结束;若输入其它字符,则显示“Youpressanerrorkey”后程序结束; 注意可使用宏指令简化程序。 4.从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。 数字0~9的ASCII码为30H~39H;大写字母的ASCII码为41H~5AH;小写字母的ASCII码为61H~7AH; 六.实验步骤 1.画出实验流程图。 2.运行Tddebug软件,选择Edit菜单编写实验程序 3.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 4.使用Rmrun菜单中的Run运行程序,观察运行结果。 5.使用Rmrun菜单中的Debug调试程序。 观察构成分支条件的各标志的变化情况及相关寄存器内容。 6.更改数据区中的数据,考察程序的正确性。 七.参考程序清单 ;设NUMBER单元的数X以及数值N1,N2均为单字节无符号数,请判断X的大小,并根据判断结果分别显示: N1<=X<=N2,或X DATASEGMENTUSE16 MESG1DB'N1<=X<=N2$' MESG2DB'X MESG3DB'X>N2$' NUMBERDB66;无符号数X N1EQU22 N2EQU88 DATAENDS CODESEGMENTUSE16 ASSUMECS: CODE,DS: DATA BEG: MOVAX,DATA MOVDS,AX MOVDX,OFFSETMESG1 CMPNUMBER,N1 JNCNEXT;X≥N1转 MOVDX,OFFSETMESG2 JMPDISP NEXT: CMPNUMBER,N2+1 JCDISP;X≤N2转 MOVDX,OFFSETMESG3 DISP: MOVAH,9 INT21H;显示结果信息 MOVAH,4CH INT21H;返回DOS CODEENDS ENDBEG 实验四、循环程序设计 一.实验目的 1.掌握比较指令、转移指令和循环指令的使用方法 2.掌握循环结构程序的组成 3.掌握循环程序的设计、调试方法 二.实验设备 PC微机一台 三.实验预习要求 1.复习比较指令、条件转移指令和循环指令。 2.阅读示例程序,掌握循环程序的结构、循环控制方法及相关技巧。 3.从实验内容中任选一道题目,仔细阅读相关的实验要求及说明,编写程序,以便上机调试。 四.实验内容 1.【示例】求某数据区内负数的个数 2.试编程统计数据区中正数、零和负数的个数。 3.编程求无符号数字节序列中最大值和最小值。 4.从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。 五.实验说明 1.求某数据区内负数的个数 为统计数据区内负数的个数,需逐个判别区内的每一个数据,然后将所有数据中凡是符号位为1的数据个数累加起来,即得到区内包含负数的个数。 参见程序清单. 2.试编程统计数据区中正数、零和负数的个数。 3.编程求无符号数字节序列中最大值和最小值 实验中可使用BH和BL作为暂存现行最大值和最小值,且在初始时将BH和BL初始化为首字节的内容,循环依次比较每个字节的内容,求得最大值(存于BH中)和最小值(存于BL中),送屏幕显示。 4..从键盘输入一字符串,搜索该字符串中是否有字符“A”,若有请输出其在串中的位置。 六.实验步骤 1.画出实验流程图。 2.运行Tddebug软件,选择Edit菜单编写实验程序 3.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。 4.使用Rmrun菜单中的Run运行程序,观察运行结果。 5.使用Rmrun菜单中的Debug调试程序。 观察构成分支、循环条件的各标志的变化情况及相关寄存器内容。 6.更改数据区中的数据,考察程序的正确性。 七.参考程序清单 ;确定数据区NUMB中负数的个数(存放于BL中) DDATASEGMENT NUMBDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H MESDB'Thenumberofnegativeis: $' DDATAENDS CODESEGMENT ASSUMECS: CODE,DS: DDATA START: MOVAX,DDATA MOVDS,AX MOVDI,OFFSETNUMB XORBH,BH MOVCX,10D A1: MOVAL,[DI] TESTAL,80H JEA2 INCBL A2: INCDI LOOPA1 MOVDX,OFFSETMES;showmes MOVAH,09H INT21H MOVAL,BL;showthenumberofnegative ANDAL,0F0H;getthehighest4bits SHRAL,4 CMPAL,0AH JBC2 ADDAL,07H C2: ADDAL,30H MOVDL,AL;showcharacter MOVAH,02H INT21H MOVAL,BL ANDAL,0FH;getthelowest4bits CMPAL,0AH JBC3 ADDAL,07H C3: ADDAL,30H MOVDL,AL;showcharacter MOVAH,02H INT21H MOVAX,4C00H;gobacktodos INT21H CODEENDS ENDSTART 实验五、运算类程序设计 一.实验目的 1.掌握运算类指令对各状态标志位的影响及其测试方法 2.掌握运用运算类指令编程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理与接口技术 微机 原理 接口 技术 实验 指导书