计算机硬件技术基础实验材料.docx
《计算机硬件技术基础实验材料.docx》由会员分享,可在线阅读,更多相关《计算机硬件技术基础实验材料.docx(35页珍藏版)》请在冰豆网上搜索。
计算机硬件技术基础实验材料
计算机硬件技术基础实验指导书
蔡学敬编写
重庆大学城市科技学院电气信息学院
目录
目录2
实验一 简单程序设计3
实验二数据在内存的存放和传送8
实验三分支程序设计12
实验四循环程序设计13
实验五子程序设计实验14
实验六查表程序设计实验15
实验八8255并行接口试验21
实验九LED数码管显示设计实验24
实验十8259中断控制器实验25
实验十一、8251串行接口实验30
实验十二键盘扫描及显示设计实验31
实验一 简单程序设计
一、实验目的:
1、熟悉汇编程序设计的基本过程;
2、单步运行程序,通过观察窗口观察指令对寄存器和内存中数据的影响。
二、实验内容:
设计一个完整的汇编语言源程序,实现Z=X+Y。
要求:
1、编写源程序,X、Y的值自己定;
2、编译链接通过生成运行程序;
3、用TD调试程序,分步运行;
观察并记录标志寄存器的值;
和内存地址中值的变化;
4、修改程序中XY的值,重新做上述步骤。
三、实验步骤:
1、汇编语言上机步骤
(1)在windows下,在D盘建立自己的文件夹
(2)点击开始菜单,选择“运行”项,在“运行”对话框中,输入CMD,进入DOS系统
(3)\D:
(进入D盘)
(4)\CD文件夹名(cai)(进入自己的文件夹)
(5)D:
\cai\EDIT(进入编辑环境输入源程序,保存为tab.asm)
(6)D:
\cai\pathd:
\tasm\bin(TASM文件夹拷贝在D盘根目录)
(7)D:
\cai\TASM32tab.asm(汇编生成目标文件tab.obj)
(8)D:
\cai\TLINktab.obj(链接生成执行文件tab.exe)
(9)D:
\cai\TDtab(进入CPU窗口运行调试)
2、TD调试窗口
(1)进入调试窗口
(2)打开调试文件
(3)调试窗口的各子窗口作用
(4)DS断基址的加载
(5)调试环境和输出显示窗口之间的切换操作
(6)进入DS段,查看相应内存中的数据
(7)代码段窗口相关信息
3、实验程序清单
DATASEGMENT
XDB15
YDB45
ZDB?
DATAENDS
CODESEGMENT
ASSUMENCS:
CDOE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,X
MOVBL,Y
ADDAL,BL
MOVZ,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
思考:
汇编程序设计有那些步骤,应该注意什么?
实验二数据在内存的存放和传送
一、实验目的
1、熟练掌握汇编调试环境;
2、熟悉数据在内存中的存放;
3、掌握内存变量的应用;
4、掌握汇编程序结构;
5、掌握数据传送指令;
6、练习寻址方式;
7、单步运行程序,通过观察窗口观察指令对寄存器中数据的影响。
二、实验内容
1、输入下列程序并观察运行结果
(1)将下列数据定义输入到数据段相应位置
DAT1DB16H,8/2,11100011B
DB216,-12,0D2H,‘ABCDE’
DAT2DB?
5dup(?
)
NUM1DB12H,34H,56H,78H,90H
COUNTDW$-DAT1
NUM2DW5566H,3344H,7823H
NUM3DD13579024H,0A0D0C0BH
NUM4DWDAT2
(2)将下列程序输入到代码段相应位置
MOVBL,NUM1
MOVBH,NUM1+2
MOVBL,BYTEPTRNUM3
MOVBX,WORDPTRNUM1+2
MOVAL,NUM1[2*3]
MOVCX,NUM2[3]
MOVDX,WORDPTRNUM3[5]
MOVDI,3
MOVAH,[DI]
MOVSI,OFFSETCOUNT
MOVBX,[SI+2]
MOVAX,[BX+DI]
MOVDI,[10H]
LEABP,NUM3
LEABX,DAT2
(3)完成整个源程序的存盘、编译、链接、TD调试
(4)F8分布运行程序
(5)每一步观察结果并完成报告要求项目
2、编写程序,将10H----15H共6个字节数据写入内存22000H开始的连续6个存储单元中;另将22000H开始的连续6个存储单元中的数据传送到41000H开始的6个存储单元中。
三、实验报告
(一)分布运行源程序,完成下列内容
1、数据段寄存器内容DS=
2、画出内存分配图(右),要表明变量名和物理地址。
3、DAT1+2单元的偏移地址是
内容为:
原数据为:
依据为:
DAT1+3单元的物理地址是
内容为:
原数据为:
依据为:
DAT1+4单元的逻辑地址是
内容为:
原数据为:
依据为:
DAT1+6~~10单元的内容为:
原数据为:
依据为:
COUNT单元内容为:
原数据为:
依据为:
DAT2单元的物理地址是:
NUM1单元的物理地址是:
NUM2单元的物理地址是:
4、
写出下列每句程序运行的结果:
MOVBL,NUM1BL=
MOVBH,NUM1+2BX=
MOVBL,BYTEPTRNUM3BL=
MOVBX,WORDPTRNUM1+2BX=
MOVAL,NUM1[2*3]AL=
MOVCX,NUM2[3]CX=
MOVDX,WORDPTRNUM3[5]DX=
MOVDI,3DI=,寻址方式:
MOVAH,[DI]AH=,寻址方式:
MOVSI,OFFSETCOUNTSI=,数据代表:
MOVBX,[SI+2]BX=,寻址方式:
MOVAX,[BX+DI]AX=,寻址方式:
MOVDI,[10H]DI=,寻址方式:
LEABP,NUM3BP=,数据代表:
LEABX,DAT2BX=,数据代表:
5、程序的第1.2两句是:
作用是:
6、程序的第最后两句是:
作用是:
(二)写出第二题的程序清单
四、第一题参考程序清单(1.ASM)
DATASEGMENT
DAT1DB16H,8/2,11100011B
DB216,-12,0D2H,‘ABCDE’
DAT2DB?
5dup(?
)
NUM1DB12H,34H,56H,78H,90H
COUNTDW$-DAT1
NUM2DW5566H,3344H,7823H
NUM3DD13579024H,0A0D0C0BH
NUM4DWDAT2
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBL,NUM1
MOVBH,NUM1+2
MOVBL,BYTEPTRNUM3
MOVBX,WORDPTRNUM1+2
MOVAL,NUM1[2*3]
MOVCX,NUM2[3]
MOVDX,WORDPTRNUM3[5]
MOVDI,3
MOVAH,[DI]
MOVSI,OFFSETCOUNT
MOVBX,[SI+2]
MOVAX,[BX+DI]
MOVDI,[10H]
LEABP,NUM3
LEABX,DAT2
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验三分支程序设计
一、实验目的:
l、掌握分支程序程序的结构;
2、掌握分支程序的设计、调试方法;
3、8088/8086条件转移指令的使用;
4、充分利用Intel80486丰富的条件转移指令,构成较复杂分支程序,实现对内存数据的控制。
二、实验内容
1、把内存中的源数据区(10个字节数据)传送到目的数据块。
2、找出以BUFF开始的连续三个单元中的最大数(假设均为8位无符号数)
实验四循环程序设计
一、实验目的:
1、掌握循环程序设计的结构;
2、加深循环结构的理解;
3、掌握循环程序的设计、调试方法;
4、熟练应用移位指令、除法指令;
5、掌握不同进制数之间的相互转换。
二、实验内容:
1、分别计算以BUFF开始的连续10个内存单元中奇、偶数的个数,奇数个数放入OD内存单元,偶数个数放入EV内存单元。
2、将BX寄存器中的数转换为相对应的十进制数,并将转换后的十进制数写入相对应的内存单元。
实验五子程序设计实验
一、实验目的
1.学习子程序的定义和调用方法;
2.掌握子程序的结构;
3.掌握子程序的程序设计及调试方法;
4.过程调用伪指令:
PROC,ENDP,NEAR和FAR;
5.8088/8086指令:
CALL,RET,RETn。
二、实验内容
求N!
实验六查表程序设计实验
一、实验目的:
1、学习查表程序设计方法;
2、熟悉DOS系统提供功能调用;
3、利用DOS系统提供的功能调用INT21H进行屏幕显示的方法;
4、80X86系列微型计算机中的ASCII码表及控制字符的使用;
二、试验内容:
查表就是根据从键盘输入的某个值,在数据表格中找到与之对应的一个数据。
要求:
从键盘输入一个数据,该数据的平方值输出到显示器屏幕上。
实验七8254定时/计数器应用实验
一、实验目的
1、学会8254芯片和微机接口原理和方法。
2、掌握8254定时器/计数器的工作方式和编程原理。
二、实验设备
PC机一台,TD-PITE实验装置一套
三、实验内容
8254的计数器0工作在方式3,用信号源1MHz作为CLK0时钟,OUT0是周期为2秒的方波,并用该信号点亮LED灯。
四、实验原理
8254是Intel公司生产的可编程间隔定时器,具有以下基本功能:
(1)有3个独立的16位计数器;
(2)每个计数器可按二进制或十进制(BCD)计数;
(3)每个计数器可编程工作于6种不同工作方式;
(4)8254每个计数器允许的最高计数频率10MHz;
(5)8254有读回命令,除了可以读出当前计数单元的内容外,还可以读书状态寄存器的内容;
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为:
,其中
是输入时钟的频率,
是输出波形的频率
图7-1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。
8254的工作方式如下所述:
(1)方式0:
计数到0结束输出正跃变信号方式;
(2)方式1:
硬件可重触发单稳方式;
(3)方式2:
频率发生器方式;
(4)方式3:
方波发生器;
(5)方式4:
软件触发选通方式;
(6)方式5:
硬件触发选通方式;
图7-18254的内部结构和引脚
8254控制字有两个:
一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。
这两个控制字共用一个地址,由标识位来区分。
控制字格式如表7-1所示。
表7-18254的方式控制字格式
表7-28254读出控制字格式
表7-38254状态字格式
实验步骤:
(1)接线图如图7-2所示
(2)根据实验内容,编写实验程序,经编译、链接无误后加载到系统
(3)运行实验程序,验证程序功能。
图7-28254定时应用实验接线图
附:
电子发声实验
一、实验目的:
学习用8254定时/计数器使蜂鸣器发声的编程方法。
二、实验设备
PC微机一台、TD-PITE实验箱一台。
三、实验内容
根据实验提供的音乐频率表和时间表,编写程序控制8254,使其输出连接到扬声器上能发出相应的乐曲。
四、实验说明及步骤
一个音符对应一个频率,将对应一个音符频率的方波通到扬声器上,就可以发出这个音符的声音。
将一段乐曲的音符对应频率的方波依次送到扬声器,就可以演奏出这段乐曲。
利用8254的方式3——“方波发生器”,将相应一种频率的计数初值写入计数器,就可产生对应频率的方波。
计数初值的计算如下:
计数初值=输入时钟÷输出频率
例如输入时钟采用1MHz,要得到800Hz的频率,计数初值即为1000000÷800。
音符与频率对照关系如表7-4所示。
对于每一个音符的演奏时间,可以通过软件延时来处理。
首先确定单位延时时间程序(根据CPU的频率不同而有所变化)。
然后确定每个音符演奏需要几个单位时间,将这个值送入DL中,调用DALLY子程序即可。
;单位延时时间;N个单位延时时间(N送至DL)
DALLYPROCDALLYPROC
D0:
MOVCX,0010HD0:
MOVCX,0010H
D1:
MOVAX,0F00HD1:
MOVAX,0F00H
D2:
DECAXD2:
DECAX
JNZD2JNZD2
LOOPD1LOOPD1
RETDECDL
DALLYENDPJNZD0
RET
DALLYENDP
表7-4音符与频率对照表(单位:
Hz)
下面提供了乐曲《友谊地久天长》实验参考频率表、时间表。
程序中频率表是将曲谱中的音符对应的频率值依次记录下来(B调、四分之二拍),时间表是将各个音符发音的相对时间记录下来(由曲谱中节拍得出)。
频率表和时间表是一一对应的,频率表的最后一项为0,作为重复的标志。
根据频率表中的频率算出对应的计数初值,然后依次写入8254的计数器。
将时间表中相对时间值带入延时程序来得到音符演奏时间。
实验参考程序流程如图7-3所示。
图7-3电子发生实验参考程序流程
实验步骤如下:
1.参考图7-4所示连接实验线路;
2.编写实验程序,经编译、连接无误后装入系统;
3.运行程序,听扬声器发出的音乐是否正确。
图7-4电子发生实验接线图
《友谊地久天长》实验参考频率表、时间表
实验八8255并行接口试验
一、实验目的
1.学习并掌握8255的工作方式及其应用;
2.掌握8255典型应用电路的接法。
二、实验设备
PC机一台,TD-PITE实验装置一套。
三、实验内容
1.基本输入输出实验。
编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
四、实验原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图8-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图8-2所示。
图8-18255内部结构及外部引脚图
图8-28255控制字格式
五、实验步骤
1.基本输入输出实验
本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
具体实验步骤如下述:
(1)实验接线图如图8-3所示,按图连接实验线路图;
(2)编写实验程序,经编译、连接无误后装入系统;
(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
图8-38255基本输入输出实验接线图
附:
流水灯显示实验
编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
实验接线图如图8-5所示。
实验步骤如下所述:
(1)按图8-5连接实验线路图;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,观察LED灯的显示,验证程序功能;
(4)自己改变流水灯的方式,编写程序。
图8-58255流水灯实验接线图
实验九LED数码管显示设计实验
一、实验目的
了解数码显示基本原理,熟悉8255A编程。
二、实验设备
PC机一台,TD-PITE实验装置一套。
三、实验内容
将本人学号后六位显示在实验箱数码管上,
将8255单元与数码管显示单元连接,编写实验程序,将本人学号后六位显示于实验箱数码上。
实验参考接线图如图9-1所示。
图9-1
实验十8259中断控制器实验
一、实验目的
1.掌握8259中断控制器的工作原理;
2.学习8259的应用编程方法;
3.掌握8259级联方式的使用方法。
二、实验设备
PC机一台,TD-PITE实验装置一套。
三、实验内容及步骤
1.中断控制器8259简介
在Intel386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。
该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。
从片的INT连接到主片的IR2信号上构成两片8259的级联。
在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。
8259的内部连接及外部管脚引出如图10-1所示。
图10-18259内部连续及外部管脚引出图
表10-1列出了中断控制单元的寄存器相关信息。
表10-1ICU寄存器列表
寄存器
端口地址
功能描述
ICW1(主)
ICW1(从)
(只写)
0020H
00A0H
初始化命令字1:
决定中断请求信号为电平触发还是边沿触发。
ICW2(主)
ICW2(从)
(只写)
0021H
00A1H
初始化命令字2:
包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。
ICW3(主)
(只写)
0021H
初始化命令字3:
用于识别从8259设备连接到主控制器的IR信号,内部的从8259连接到主8259的IR2信号上。
ICW3(从)
(只写)
00A1H
初始化命令字3:
表明内部从控制器级联到主片的IR2信号上。
ICW4(主)
ICW4(从)
(只写)
0021H
00A1H
初始化命令字4:
选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。
OCW1(主)
OCW1(从)
(读/写)
0021H
00A1H
操作命令字1:
中断屏蔽操作寄存器,可屏蔽相应的中断信号。
OCW2(主)
OCW2(从)
(只写)
0020H
00A0H
操作命令字2:
改变中断优先级和发送中断结束命令。
OCW3(主)
OCW3(从)
(只写)
0020H
00A0H
操作命令字3:
使能特殊屏蔽方式,设置中断查询方式,允许读出中断请求寄存器和当前中断服务寄存器。
IRR(主)
IRR(从)
(只读)
0020H
00A0H
中断请求:
指出挂起的中断请求。
ISR(主)
ISR(从)
(只读)
0020H
00A0H
当前中断服务:
指出当前正在被服务的中断请求。
POLL(主)
POLL(从)
(只读)
0020H
0021H
00A0H
00A1H
查询状态字:
表明连接到8259上的设备是否需要服务,如果有中断请求,该字表明当前优先级最高的中断请求。
初始化命令字1寄存器(ICW1)说明见图10-2所示。
图10-2初始化命令字1寄存器
初始化命令字2寄存器(ICW2)说明见图10-3所示。
图10-3初始化命令字2寄存器
初始化命令字3寄存器(ICW3)说明,主片见图10-4,从片见图10-5。
图10-4主片初始化命令字3寄存器
图10-5从片初始化命令字3寄存器
初始化命令字4寄存器(ICW4)说明见图10-6。
图10-6初始化命令字4寄存器
操作命令字1寄存器(OCW1)说明见图10-7。
图10-7操作命令字1寄存器
操作命令字2寄存器(OCW2)说明如图10-8所示。
图10-8操作命令字2寄存器
操作命令字3寄存器(OCW3)说明如图10-9所示。
图10-9操作命令字3寄存器
查询状态字(POLL)说明如图10-10所示。
图10-10程序状态字寄存器
在对8259进行编程时,首先必须进行初始化。
一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。
8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。
在初始化主片8259时,写入初始化命令字的顺序是:
ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。
系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。
中断矢量地址与中断号之间的关系如下表所示:
2.8259单中断实验
实验接线图如图10-11所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“Good”。
图10-118259单中断实验接线图
实验步骤
(1)按图10-11连接实验线路;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。
3.8259级联实验
实验接线图如图10-12所示,KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。
编写程序。
图10-128259级联实验
实验步骤
(1)按