计算机组成原理实验一二Word文件下载.docx
《计算机组成原理实验一二Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验一二Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
上,另一端接到PC机的串口上;
5)将TEC-XP+实验系统左下方的六个黑色的控制机器运行状态的开关置于正确的位置,再找个实验中开关应置为001100(连续、内存读指令、组合逻辑、联机、16位、MACH),控制开关的功能在开关上、下方有标识;
开关拨向上方表示"
1"
,拨向下方表示"
0"
,"
X"
表示任意,其他实验相同;
6)打开电源,船型开关盒5V电源指示灯亮;
7)在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为"
2"
,其他的设置一般不用改动,直接回车即可;
8)按一下"
RESET"
按键,再按一下"
START"
按键,在主机上显示:
TEC—2000CRTMONITOR
Version1.0April2001
ComputerArchitecturLab,TsinghuaUniversity
ProgrammedbyHeJia
六、实验示例:
1.用R命令查看寄存器内容或修改寄存器的内容
1)在命令行提示符状态下输入:
R↙;
显示寄存器的内容
注:
寄存器的内容在运行程序或执行命令后会发生变化。
2)在命令行提示符状态下输入:
RR0↙:
修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可由一个或数个空格
主机显示:
寄存器原值:
_
在该提示符下输入新的值0036
再用R命令显示寄存器的内容,则R0的内容变为0036。
测试结果如下图:
3.用命令修改存储器内容
在命令提示符状态下输入:
E2000↙
屏幕显示:
2000地址单元的原有内容:
光标闪烁等待输入
输入0000
依次改变地址单元2001~2005的内容为:
11112222333344445555
注意:
用E命令连续修改内存单元的值时,每修改完一个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;
按回车键则退出E命令。
5.用A命令花不如一段汇编源程序,主要是想累加器送入数据和进行运算,执行程序并观察运行结果。
A2000↙:
表示该程序从2000H(内存RAM区的起始地址)地址开始
屏幕将显示:
2000:
输入如下形式的程序:
MVRDR0,AAAA;
MVRD与R0之间有且只有一个空格,其他指令相同
2002:
MVRDR1,5555
2004:
ADDRO,R1
2005:
ANDR0,R1
2006:
RET;
程序的最后一个语句,必须为RET指令
2007:
(直接敲回车键,结束A命令输入程序的操作过程)
若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。
2)用U命令反汇编刚输入的程序
在命令行提示符状态下输入:
U2000↙
在相应的地址会得到输入的指令及其操作码
连续使用不带参数的U命令时,将从上一次反汇编的最后一条语句之后接着继续反汇编。
3)用G命令运行前面键入的源程序
G2000↙
程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0和R1的值均为5555H,说明程序运行正确。
4)用P或T命令,但不执行这段程序,观察指令执行结果
T2000↙
寄存器R0被赋值为AAAAH
T↙
寄存器R1被赋值为5555H
做加法运算,和放在R0,R0的值变为FFFFH
做与运算,结果放在R0,R0的值变为5555H
用P命令执行过程同上
T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序依次执行完成。
T,P命令每次执行后均显示所由通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。
运行结果如下:
例1:
设计一个小程序,从键盘上接收一个字符并在屏幕上数出显示该字符。
<
1>
A2000↓
屏幕将显示:
2000:
输入如下形式的程序:
IN81:
判断键盘上是否按了建
2001:
SHRR0:
即串行口是否有输入的字符
2002:
SHRR0
2003:
JRNC2000:
未输入完则循环测试
2004:
IN80:
接收该字符
2005:
OUT80↓:
在屏幕上输出显示字符‘6’
2006:
RET↓:
每个用户程序都必须用RET指令结束
2007:
↓:
(按回车即结束输入过程)
注:
在十六位机中,基本I/O接口的地址是确定的,数据口的地址为80,状态口的地址为81。
2>
用“G”命令运行程序
G2000↓
执行上面输入的程序
光标闪烁等待输入,用户从键盘入字符后,屏幕会显示该字符。
该例建立了一个从主存2000H地址开始的小程序。
这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符H。
每个用户程序的最后一个语句一定为RET汇编语句。
因为监控程序是用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束,才能保证程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。
测试如下图:
七、实验心得:
1、这是本学期第一次计算机组成原理的实验,我初步掌握了TEC-XP实验系统和PC机上仿真软件、模拟器的基本操作方法。
2、认识并熟悉了一些基本汇编语言的操作,了解到程序内部运行机制,感觉很神奇。
3、第一次实验手忙脚乱,打错指令却忘了时时检查,最后只能重新再输入一遍,做了很多无用功(导致后面两个实验是后来有时间才补上的),但同时也让我对汇编指令更加熟悉了一些。
4.本来想建议说PC端软件可以改进一些,加入后退、修改功能之类的,后来仔细一想,错误的程序输入以后内存的值也被改变了,这样的功能并不实际。
5.这个实验内容较多,需要学会跟同学分工合作才能更好地完成。
实验题目实验二脱机运算器实验
一、实验目的:
1.深入了解AM2901运算器的功能与具体用法;
2.深化运算器部件的组成、设计、控制与使用等知识。
3.
TEC-XP+教学实验系统和仿真终端软件PCEC。
本次实验脱离PC端,主要通过实验箱进行。
因此这个实验更像数据逻辑的电路实验。
脱机运算器实验,是指让运算器从教学计算机整机中脱离出来,此时,它的全部控制与操作均需通过两个12位的微型开关来完成,这就谈不上执行指令,只能通过开关、按键控制教学机的运算器完成指定的运算功能,并通过指示灯观察运算结果。
下面先把前边几讲过的,与该实验直接有关的结论性内容汇总如下。
一、12位微型开关的具体控制功能分配如下:
A口,B口地址:
送给AM2901器件用于选择源与目的操作数的寄存器编号:
I8-I0:
选择操作数来源,运算操作功能,选择操作数处理结果和运算器输出内容的3组3位的控制码:
SCI,SSH和SST:
用于确定运算器最低位的进位输入,移位信号的入/出和怎样处理AM2901产生的状态标志位的结果。
二、开关位置说明:
做脱机运算器实验时,要用到提供24位控制信号的微动开关和提供16位数据的拔动开关。
微动开关是红色的,一共有三个,一个微动开关可以提供12位的控制信号,三个开关分别标有SWI1microswitch、SW2microswitch和SW3microswitch;
数据开关是黑色的,左边的标有SWH的是高8位,右边的标有SWL的是低8位。
微动开关与控制信号对应关系见表(从左到右):
SW1Microswitch
SW2Microswitch
SW3Microswitch
T3-T0
REQ/MIO/WE
I2-I0
I8-I7
I6-I3
BPORT
APORT
SSTSSHSCI
DC2
DC1
三、开关检测
红色微动开关是该实验系统使用寿命最短的器件,开关好坏的检测方法比较简单,用户将五个控制机器工作方式的开关置于“1XX000”,从左面其第二个和第三个的开关处于任意位置,然后将两个未动开关上的24小纽子依次置为1(开关拨到上方为1),看对应的指示灯是否亮,如果有一个或数个指示灯不亮,则一般是开关除了问题。
在脱机方式下,对于给定指令分析其执行过程中运算的步骤,通过对AM2901运算器反需控制信号的设置,使之完成运算,并核对运算结果。
在脱机方式下,通过设置SW1、SW2、SW3各微码字段和数据开关,可实现多种运算,以实现AAAAH->
R1为例说明操作过程。
1)按照下表中的微码和数据开关,对运算器进行设置。
操作步骤如下:
微动开关
数据开关
I8-I6
I5-I3
SST
SSH
SCi
B
A
D15-D0
011
000
111
00
0001
不用
AAAAH
a)将教学机左下方的6个拨动开关置为1XX000(单步、16位、脱机、CACH);
先按一下RESTET按键,再按一下START按键,进行初始化。
b)通过16个数据开关设置立即数AAAAH。
c)通过SW1、SW2、SW3设置各微码。
2)按一次START键,立即数XXXXH置入R1,通过显示灯察看按START键后的输出。
若要进行其它操作:
a)重新设置SW1、SW2、SW3、数据开关,通过显示灯观察输出。
b)然后按START键执行操作,通过显示灯观察按下START键后的输出,检查运算结果是否正确。
3)完成下表的各种运算,记录按START键前和按START键后的ALU输出及标志位C、Z、V、S的值。
运算
I8—I0
SST
SSH
SCi
B
A
压STEP前
压STEP后
ALU输出
CZVS
CZVS
D1+0—>R0
011000111
001
00
00
0000
01h
随机
D2+0—>R1
0001
10h
0000
R0+R1—>R0
011000001
00l
11h
21h
R0-R1—>R0
011001001
0l
01t1
F1h
1000
R1-R0—>R1
000l
0Fh
0Eh
R0∨Rl—>R0
011011001
0FH
1000
0EH
R0∧R1—>R0
011100001
01H
R0∨2Rl—>R0
011110001
001
0EH
¬
(R0∨R1)—>R0
011111001
FEH
1001
2*R0—>R0
111010011
FEH
100l
FCH
R0/2—>0
101000011
7EH
注:
用*标记的运算,表示D1,D2的数据是由拨动开关SW给出的,开关给的是二进制的信号,注意二进制和十六进制间的转换.
六、思考题:
问题:
分析比较各指令按START键前和按START键后的值,是否有不同并解释。
前后结果有些不同,按”START”按键之前,ALU输出的是计算结果,参照ALU的操作周期的时序可知A,B口数据锁存是在时钟的下降沿,通用寄存器的接收是在低电平,所以要想寄存器接收ALU的计算结果必须按一次”START”按键。
这次实验使我初步了解运算器芯片Am2901的结构和功能,它能实现R+S、S-R、R-S三种算术运算功能和五种逻辑运算功能。
我们通过三位功能选择码I5、I4、I3实现选择ALU的八种运算(三种算术运算、五种逻辑运算)功能之一。
选择送入ALU的两个操作数据R和S的组合关系是用I2、I1、I0三位操作数选择码控制实现的。
通用寄存器组和Q寄存器执不执行接收操作或移位操作确定了运算结果或数据的输送方式和方向,I8、I7、I6三位结果选择码控制确定了向芯片的输出信息提供的内容。
最后懂得了通过查表用指令微码来实现一些简单的逻辑功能。
加深了对硬件操作的兴趣。