《计算机组成原理》实验指导.docx
- 文档编号:9615352
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:36
- 大小:54.18KB
《计算机组成原理》实验指导.docx
《《计算机组成原理》实验指导.docx》由会员分享,可在线阅读,更多相关《《计算机组成原理》实验指导.docx(36页珍藏版)》请在冰点文库上搜索。
《计算机组成原理》实验指导
《计算机组成原理》实验指导
重庆文理学院计算机学院邹永康
实验一监控程序与汇编语言程序设计
一、实验原理:
教学机的监控程序是用教学机的汇编语言实现的,运行在教学机的硬件系统之上。
它的主要功能是支持把计算机终端或PC机仿真终端接入教学机系统,使用这样的设备执行输入/输出操作,运行教学机的有关程序,以更方便直观的形式支持教学机上的各项实验功能,提供教学机汇编语言的可用子程序。
监控程序提供类似PC机DOS系统下的Debug程序的功能,支持A、U、G、P、T、R、D和E共8个监控命令。
监控命令的格式为:
单字母的命令名后跟回车,或命令名后跟一个地址参数,或寄存器名(编号)参数。
当有些命令运行时需要参数,但命令名后又不跟参数时,监控程序会从内存指定单元取一个默认的地址参数值,通常为该命令前一次运行后所接收地址。
TEC—2机从终端接收地址、指令,数值时,均用最多4位的16进制数输入与显示,并且不能(或说不必)用跟字符h加以标志。
⑴单条汇编命令A
格式:
A[adr]
这里的[adr]表示此处的地址参数adr为任选项(但选择范围必须为0800H—0FFFH)。
无此参数时,系统将取默认值。
该规则下同。
功能:
完成单条指令的汇编操作,把产生出来的TEC—2机的执行代码放入对应的内存单元中。
命令名后的地址是头一条汇编语句的执行码的内存单元地址。
每条语句汇编完成之后,系统将相应修改地址值,以便正确处理下条汇编语句。
在应该输入汇编语句时,不给出汇编语句而直接回车,则结束A命令的运行过程。
若汇编中发现语法错误,用ˆ指明出错位置后请求重新给出正确语句。
要说明,这里的单条汇编功能不很完善,例如不支持语句标号,也不能使用伪指令等。
遇到这些问题,要求使用者直接使用机器码,并通过E命令将其送入相应内存单元。
⑵反汇编命令U
格式:
U[adr]
功能:
每次从指定的(或默认的)地址反汇编15条命令,并将结果显示在终端屏幕上。
反汇编完成之后,已将该命令的默认地址修改好。
接下来再键入不带参数的U命令,保证接着从上一次反汇编的最后一条语句之后继续反汇编。
⑶执行程序命令G
格式:
G[adr]
功能:
从指定的(或默认的)地址连续运行一个用户程序。
为了使程序执行后能返回监控程序,要求每个程序的最后一条指令应为RET指令。
⑷单指令执行程序命令T和P
格式:
P[adr]
T[adr]
功能:
从指定地址(或PC中的当前地址)开始单条执行程序指令。
通常情况下,每按一次T或P将执行一条指令。
T和P命令的区别是,T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。
每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。
由于P和T命令是通过设置断点来实现的,而在ROM区不能设置断点,故不能用它们来执行固化在ROM区中的监控程序。
⑸显示/修改寄存器内容的命令R
格式:
R[reg]
其中reg为寄存器名R0——R15或SP(R4),PC(R5),IP(R6),当R命令不带带寄存器名时,显示全部寄存器(包括SP,PC和IP)及状态寄存器的值,并反汇编当前PC所指的一条指令,其中状态的显示格式为:
“F=8位二进制数”,其各位的值分别对应于C、Z、V、S,INTE、P2、P1、P0的值,当R命令带有寄存器名时,先显示出该寄存器的值,若修改打入新值回车,否则只按回车即可。
⑹显示存储器内容的命令D
格式:
D[adr]
功能:
从指定(或默认)地址开始显示内存120个存储字的内容。
显示的格式:
最左一列4位的16进制数是本行中第一个字的地址,接下来的8列是4位的16进制的8个连续内存字的内容,最右一列是每个字节所对应的ASCⅡ字符。
当其值不为可显示字符的ASCⅡ码值时,用一个“.”字符标记。
连续的D命令,保证所显示内容前后正确的连续关系,即每次执行D命令,会将默认的地址值加上120。
TEC—2机通常采用字地址读写内存。
⑺修改存储器内容命令E
格式:
E[adr]
功能:
从指定(或默认)地址逐字显示每个内存字的内容,并等待用户打入一个新的值存回该内存单元。
若用户未打入新值就打了空格键,则该内存单元内容保持不变。
若在打入新值后跟空格键,则内存单元内容写成新值。
空格键表明要连续修改一片内存区,故接下来显示下一个单元的内容并等待修改。
打回车键,则会结束E命令的执行过程,若回车前打入一个新值,相应内存单元的内容也将被修改。
注:
进入监控程序的具体操作步骤:
1.准备一台串口工作良好的PC机;
2.将TEC-2放在实验台上,打开实验箱的盖子,确定电源处于断开状态;
3.将黑色的电源线一端接220V交流电源,另一端插在TEC-2实验箱的电源插座里;
4.取出通讯线,将通讯线的9芯插头接在TEC-2实验箱上的串口“COM1”上,另一端接到PC机的串口上;
5.将TEC-2实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位置,在找个实验中开关应置为00110(连续、内存读指令、组合逻辑、联机、16位),控制开关的功能在开关上、下方有标识:
开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意,其他实验相同;
6.打开电源,船形开关和5V电源指示灯亮。
7.在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为“1”或“2”,其它的设置一般不用改动,直接回车即可。
(具体步骤附后)
8.按一下“RESET”按键,再按一下“START”按键,主机上显示:
TEC-2000CRTMONITOR
Version2.0April2001
ComputerArchitecturLab.,TsinghuaUniversity
ProgrammedbyHeJia
二、实验目的:
1.学习和了解TEC-2000十六位机监控命令的用法;
2.学习和了解TEC-2000十六位机的指令系统;
3.学习简单的TEC-2000十六位机汇编程序设计;
三、实验内容:
1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;
2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;
实验要求:
在使用该教学机之前,应先熟悉教学机的各个组成部分,及其使用方法。
实验步骤:
1.关闭电源,将大板上的COM1口与PC机的串口相连;
2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“1”或“2”,
其它的设置一般不用改动,直接回车即可;
3.置控制开关为00101(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示
“1”,拨向下方表示“0”,“X”表示任意。
其它实验相同;
4.按一下“RESET”按键,再按一下“START”按键,主机上显示:
TEC-2000CRTMONITOR
Version1.0April2001
ComputerArchitecturLab.,TsinghuaUniversity
ProgrammedbyHeJia
>
5.用R命令查看寄存器内容或修改寄存器的内容
1)在命令行提示符状态下输入:
R↙;显示寄存器的内容
注:
寄存器的内容在运行程序或执行命令后会发生变化。
2)在命令行提示符状态下输入:
RR0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有
一个或数个空格
主机显示:
寄存器原值:
_
在该提示符下输入新的值0036
再用R命令显示寄存器内容,则R0的内容变为0036。
6.用D命令显示存储器内容
在命令行提示符状态下输入:
D2000↙
会显示从2000H地址开始的连续128个字的内容;
连续使用不带参数的D命令,起始地址会自动加128(即80H)。
7.用E命令修改存储器内容
在命令行提示符状态下输入:
E2000↙
屏幕显示:
2000地址单元的原有内容:
光标闪烁等待输入
输入0000
依次改变地址单元2001~2005的内容为:
11112222333344445555
注意:
用E命令连续修改内存单元的值时,每修改完一个,按一下空格键,系统会自
动给出下一个内存单元的值,等待修改;按回车键则退出E命令。
用D命令显示这几个单元的内容
D2000↙
可以看到这六个地址单元的内容变为000011112222333344445555。
8.用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并
观察运行结果。
1)例子1:
设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。
<1>在命令行提示符状态下输入:
A2000↙;
屏幕将显示:
2000:
输入如下形式的程序:
2000:
IN81;判键盘上是否按了一个键
2001:
SHRR0;即串行口是否有了输入的字符
2002:
SHRR0
2003:
JRNC2000;未输入完则循环测试
2004:
IN80;接收该字符
2005:
OUT80↙;在屏幕上输出显示字符‘6’
2006:
RET↙;每个用户程序都必须用RET指令结束
2007:
↙;(按回车键即结束输入过程)
注:
在十六位机中,基本I/O接口的地址是确定的,数据口的的值为80,状态口
的地址为81。
<2>用“G”命令运行程序
在命令行提示符状态下输入:
G2000↙
执行上面输入的程序
光标闪烁等待输入,用户从键盘键入字符后,屏幕会显示该字符。
8
该例建立了一个从主存2000H地址开始的小程序。
在这种方式下,所有的数字都
约定使用16进制数,故数字后不用跟字符H。
每个用户程序的最后一个语句一定为
RET汇编语句。
因为监控程序是选用类似子程序调用方式使实验者的程序投入运行的,
用户程序只有用RET语句结束,才能保证程序运行结束时能正确返回到监控程序的断
点,保证监控程序能继续控制教学机的运行过程。
2)例2:
设计一个小程序,用次数控制在终端屏幕上输出'0'到'9'十个数字符。
<1>在命令行提示符状态下输入:
A2020↙
屏幕将显示:
2020:
从地址2020H开始输入下列程序:
2020:
MVRDR2,00OA;送入输出字符个数
2022:
MVRDR0,0030;“0”字符的ASCII码送寄存器R0
2024:
OUT80;输出保存在R0低位字节的字符
2025:
DECR2;输出字符个数减1
2026:
JRZ202E;判10个字符输出完否,已完,则转到程序结束处
2027:
PUSHR0;未完,保存R0的值到堆栈中
2028:
IN81;查询接口状态,判字符串行输出完成否,
2029:
SHRR0;
202A:
JRNC2028;未完成,则循环等待
202B:
POPR0;已完成,准备输出下一字符并从堆栈恢复R0的值
202C:
INCR0;得到下一个要输出的字符
202D:
JR2024;转去输出字符
202E:
RET
202F:
↙
该程序的执行码放在2020H起始的连续内存区中。
若送入源码的过程中有错,系
统会进行提示,等待重新输入正确汇编语句。
在输入过程中,在应输入语句的位置直
接打回车则结束输入过程。
<2>用“G”命令运行程序
在命令行提示符状态下输入:
G2020↙
执行结果为:
0123456789
思考题:
当把IN01,SHRR0,JNC2029三个语句换成4个MOVR0,R0语句,
该程序执行过程会出现什么现象?
试分析并实际执行一次。
提示:
该程序改变这三条语句后,若用T命令单条执行,会依次显示0~9十个数
字。
若用G命令运行程序,程序执行速度快,端口输出速度慢,这样就会跳跃输出。
在命令行提示符状态下输G2020,屏幕显示09。
类似的,若要求在终端屏幕上输出'A'到'Z'共26个英文字母,应如何修改例1
中给出的程序?
请验证之。
9
参考答案:
在命令行提示符状态下输入:
A2100↙
屏幕将显示:
2100:
从地址2100H开始输入下列程序:
(2100)MVRDR2,001A;循环次数为26
MVRDR0,0041;字符“A”的值
(2104)OUT80;输出保存在R0低位字节的字符
DECR2;输出字符个数减1
JRZ210E;判26个字符输出完否,已完,则转移到程序结束处
PUSHR0;未完,保存R0的值到堆栈中
(2108)IN81;查询接口状态,判字符串行输出完成否
SHRR0
JRNC2108;未完成,则循环等待
POPR0;已完成,准备输出下一字符,从堆栈恢复R0的值
INCR0;得到下一个要输出的字符
JR2104;转去输出字符
(210E)RET
用G命令执行该程序,屏幕上显示“A”~“Z”26个英文字母.
例子3:
从键盘上连续打入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇非数字
符结束输入过程。
<1>在命令行提示符状态下输入:
A2040↙
屏幕将显示:
2040:
从地址2040H开始输入下列程序:
(2040)MVRDR2,0030;用于判数字符的下界值
MVRDR3,0039;用于判数字符的上界值
(2044)IN81;判键盘上是否按了一个键,
SHRR0;即串行口是否有了输入的字符
SHRR0
JRNC2044;没有输入则循环测试
IN80;输入字符到R0
MVRDR1,00FF
ANDR0,R1;清零R0的高位字节内容
CMPR0,R2;判输入字符≥字符'0'否
JRNC2053;为否,则转到程序结束处
CMPR3,R0;判输入字符≤字符'9'否
JRNC2053;为否,则转到程序结束处
OUT80;输出刚输入的数字符
10
JMPA2044;转去程序前边2044处等待输入下一个字符
(2053)RET
<2>在命令行提示符状态下输入:
G2040↙
光标闪烁等待键盘输入,若输入0-9十个数字符,则在屏幕上回显;若输入非数
字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。
思考题,本程序中为什么不必判别串行口输出完成否?
设计打入'A'~'Z'和
'0'~'9'的程序,遇其它字符结束输入过程。
实验二运算器实验
一、实验原理:
运算器是计算机中执行各种算术和逻辑运算操作的部件。
运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作。
运算器的组成除了必须的ALU单元外,寄存器和移位器也是必需。
寄存器用于提供操作数和存放运算结果,以节省访存时间;移位器可实现数据的移位功能,以扩展ALU的运算功能和数据传送的灵活性。
美国AMD公司生产的AM2901芯片是典型的运算器芯片。
1、AM2901的结构与组成
AM2901芯片是一个4位的,位片结构的、完整的运算器器件。
AM2901由ALU、输入多路选择器、输出选择门、寄存器组和移位器等器件组成,如图1-1所示,作为教学内容的实例具有很好的典型性。
2、AM2901各组成部分及其功能
1)ALU为4位算术逻辑单元,有8种运算功能,由外部送入3位信号I5,I4,I3的编码值来确定执行哪种功能。
2)存器组
AM2901具有由16个4位寄存器组成的寄存器组,作为通用寄存器组使用。
该寄存器组有两个4位地址译码器A和B,其中A译码器只具有读出数据功能,而B译码器具有读出和写入两种功能。
也就是说,该寄存器组具有两个数据输出端口,即A口和B口,输出的数据分别存入锁存器A和B;一个数据输入端口,即B口。
3)寄存器
4位,在乘除运算中可用来存放乘数或商,故称做乘商寄存器。
它本身具有移位功能,即可接受其本身左移一位或右移一位的值,它还可以接收ALU的输出值。
4)输入多路选择器
AM2901具有两个输入多路选择器R和S,用于为ALU提供两个操作数。
其中,R可选择D数据线来的数据或A锁存器的数据;而S可从A锁存器、B锁存器、Q寄存器3个来源选取数据。
两个操作数的组合由外部送来的3位控制信号I2、I1、I0的编码确定。
5)移位器
4位,用于对ALU的输出实现直送、左移或右移。
6)输出选择门
用于确定AM2901输出数据Y的来源。
输出数据Y有两个来源:
一个是ALU的运算结果F,另一个是直接来自A口。
输出数据Y的选择,以及ALU的运算结果F如何传送给B输入口或Q寄存器,是由外部送来的3位控制信号I8、I7、I6的编码值确定的。
3、为了控制AM2901运算器按我们的意图完成预期的运算操作功能,就必须向其提供相应的控制信号,包括:
用3组各3位的编码,分别用于选择ALU的运算功能,输入数据,结果处置方案,具体规定如表1-1、表1-2、表1-3所示。
表1-1选择8种运算表1-2选择ALU的8种输入数据组合
I5I4I3
运算类型
I2I1I0
R来源S来源
000
001
010
011
100
101
110
111
R+S
S-R
R-S
R∨S
R∧S
R∧S
R∨S
R∨S
000
001
010
011
100
101
110
111
AQ
AB
0Q
0B
0A
DA
DQ
D0
注:
D表示外部数据
表1-3选择运算器的8种结果的处置方案
I8I7I6
寄存器组Q寄存器Y输出
000
001
010
011
100
101
110
111
F→QF
F
F→BA
F→BF
F/2→BQ/2→QF
F/2→BF
2F→B2Q→QF
2F→BF
二、实验步骤
运算器部件的实验,要在教学计算机主板上进行,既可以在脱机方式下完成,也可以在联机方式下完成。
脱机方式是指使运算器部件完全脱离与计算机主机其他部件正常的连接关系,在完全孤立出来的运算器上进行的教学实验。
此时,只能通过数据开关提供参加运算的数据,通过微型开关提供操作运算器完成运算所必需的控制信号,通过信号指示灯观察运算结果,操作简单,实验结果清晰易理解。
联机方式是指在运算器部件与计算机主机保持连接关系,教学计算机可以正常执行指令的情况下进行的以运算器为重点的教学实验。
此时,可以通过指令提供参加运算的数据,通过控制器提供操作运算器完成运算所必需的控制信号,通过信号指示灯或者通过运行监控程序观察运算结果,操作略显复杂。
1、脱机实验
⑴打开实验箱电源开关。
⑵将五个控制开关分别置为10000
注:
五个控制开关从左至右分别是:
Step/Cntnu、Hndlns/MEMIns、Comloq/Microp、LinkMachi/LeaveMachine、8Bit/16Bit
即:
单步/连续、手动执行/程序存储、组合逻辑/微程序控制、联机/脱机、8位/16位
1:
代表上档功能,0:
代表下档功能
⑶将AAAA送入R0
①微型开关分别置为011000111001000000000000
注:
微型开关从左至右分别对应的控制信号是:
I8I7I6I5I4I3I2I1I0SSTA端口地址B端口地址SSHSCI
其中:
SST为状态寄存器接收,SSH为最底位进位,SCI为移位控制
②设置数据开关为AAAA(16进制)
③按START按钮
⑷将5555送入R1
①微型开关分别置为011000111001000000010000
②设置数据开关为5555(16进制)
③按START按钮
⑸R0+R1→R1
微型开关分别置为011000001001000000010000
2、联机实验
⑴将通讯线一端接实验箱上,另一端插头后接PC机任意COM口。
注:
这里PC机只是实验箱的输入输出设备。
⑵将五个控制开关分别置为00010。
⑶打开计算机,运行PCEC程序,选择所接COM口后按回车。
按F10进入主菜单,选择0,分别按实验箱上的RESET、START按钮,进入监控程序。
⑷屏幕出现提示符>,即可用A命令输入程序
>A2000
MOVR0,AAAA
MOVR1,5555
ADDR1,R0
RET
(5)用T命令观察运行结果。
三、实验要求
1、认真写出预习报告,包括实验用的全部数据,实验操作步骤等。
2、实验之后写出实验报告,包括实验过程中遇到的问题,解决方法,实验后的心得体会及对该次实验的建议与意见。
实验三储器部件实验
实验目的:
通过看懂教学计算机中已经使用的几个存储器芯片的逻辑连接关系和用于完成存储器容量扩展的几个存储器芯片的布线安排,在教学计算机上设计、实现并调试出存储器容量扩展的实验内容。
其最终要达到的目的是:
1.深入理解计算机内存储器的功能、组成知识;
2.深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即字、位扩展技术),控制其运行的方式;
思考并对比静态和动态存储器芯片在特性和使用场合等方面的同异之处。
实验说明:
教学计算机存储器系统由ROM和RAM两个存储区组成,分别由EPROM芯片(或EEPROM芯片)和RAM芯片组成。
TEC-2教学计算机中还安排了另几个存储器器件插座,可以插上相应存储器芯片以完成存储器容量扩展的教学实验,为此必须比较清楚地了解:
1.TEC-2教学机的存储器系统的总体组成及其连接关系;
2.TEC-2教学机的有关存储器芯片、I/O接口芯片的片选信号控制和读写命令的给出和具体使用方法;
3.RAM和EPROM、EEPROM存储器芯片在读写控制、写入时间等方面的同异之处,并正确建立连线关系和在程序中完成正确的读写过程;
4.如何在TEC-2教学机中使用扩展的存储器空间并检查其运行的正确性。
实验内容:
1.要完成存储器容量扩展的教学实验,需为扩展存储器选择一个地址,并注意读写和OE等控制信号的正确状态;
2.用监控程序的D、E命令对存储器进行读写,比较RAM(6116)、EEPROM(28系列芯片)、EPROM(27系列芯片)在读写上的异同;
3.用监控程序的A命令编写一段程序,对RAM(6116)进行读写,用D命令查看结果是否正确;
4.用监控程序的A命令编写一段程序,对扩展存储器EEPROM(28系列芯片)进行读写,用D命令查看结果是否正确;如不正确,分析原因,改写程序,重新运行。
实验要求:
1.实验之前,应认真预先准备,写出实验步骤
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理 计算机 组成 原理 实验 指导