实验三 TEC2实验计算机运算器实验Word文档下载推荐.docx
《实验三 TEC2实验计算机运算器实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验三 TEC2实验计算机运算器实验Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。
![实验三 TEC2实验计算机运算器实验Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/da53c862-ead5-4466-b02e-7e267dea47a6/da53c862-ead5-4466-b02e-7e267dea47a61.gif)
D3~D0:
外部送给Am2901的数据信号;
Y3~Y0:
Am2901向外送出的数据信号,它受/OE信号的控制。
在TEC-2机中,/OE端已接地,因此,Y3~Y0总是有的。
3.Am2901的操作时序
Am2901芯片要用一个CLK(CP)时钟信号作为芯片内通用寄存器、锁存器和Q寄存器的打入信号。
其有关规定如图3.3所示。
图3.3Am2901的时钟信号的作用
4.Am2901芯片的控制信号及其控制码与操作
♦控制信号
Am2901芯片的控制信号有9个,即I8-I0。
这9个控制信号分为三组,它们是:
a)I8、I7、I6(B30-28):
选择运算结果或有关数据以何种方式送往何处;
b)I5、I4、I3(B26-24):
选择ALU的运算功能,共8种;
c)I2、I1、I0(B22-20):
选择送入ALU进行运算的两个操作数据R和S的来源,共8种组合
具体参照表3.1
表3.1Am29019个控制信号I8~I0
控制码
I8、I7、I6
I5、I4、I3
I2、I1、I0
000
F→Q
F
R+S
A
Q
001
无
S–R
B
010
F→B
R–S
011
R∨S
100
F/2→B
Q/2→Q
R∧S
101
/R∧S
D
110
2F→B
2Q→Q
RS
111
R⊙S
寄存器结果选择
Y输出选择
运算功能选择
R
S
注:
R、S中的“0”为逻辑0。
图3.6完整的16位运算器的组成框图
♦伪指令中三位微码与状态位的关系
表3.2三位微码与状态位的关系表
SST编码
状态位输入
说明
B34B33B32
C
Z
V
四个标志位的值保持不变
CY
F=0
OV
F15
接收ALU的标志位输出值
IB7
IB6
IB5
IB4
恢复标志位现场值
置C为0,另三个标志不变
1
置C为1,另三个标志不变
RAM0
右移操作,另三个标志不变
RAM15
左移操作,另三个标志不变
Q0
联合右移,另三个标志不变
表3.3
♦运算器最低位进位信号的给出与控制
SCi编码(B11、B10)
00
01
10
11
Cin取值
TCLK方波
表3.4
♦运算器最高位、最低位的移入信号(SSH)
控制码SSH
左移
右移
B9B8
RAM0Q0
RAM15Q15
00
0X
通用寄存器逻辑位移
01
CX
通用寄存器与C循环移位
10
Q15/F15
CYRAM0
原码除(左移)乘(右移)
11
XX
F15⊕OVRRAM0
右移用于补码乘法
说明:
♦表中“X”为任意值,表示取任意值都不受影响
♦当通用寄存器本身移位时,Q寄存器不受影响
♦乘除法运算要求通用寄存器与Q寄存器联合移位,没有Q寄存器单独移位功能
♦左右移是由指令功能确定的
♦SSH为0,用于逻辑移位指令
♦SSH为1,用于循环移位指令
♦SSH为2,用于乘除法运算的联合移位及上商
♦SSH为3,用于算术右移指令,或补码乘法计算
三.实验内容
脱机和联机时运算器实验
在脱机与联机两种方式下,可以用一些数据实现多种运算,以控制其操作过程与功能
检查所得结果的正确性。
(一)脱机方式
1.将TEC-2机功能开关FS4置为“1”。
2.将TEC-2机主脉冲置为单步方式,即将STEP/CONT开关拨向STEP一边。
3.用D0+0→R0将立即数D0(A000H)置入寄存器R0(0000)。
具体的微型开关和数据开关按下表进行设置:
波特率开关
数据开关
SW2(共12位,最末三位未用)
SW1(共12位)
MI876
MI543
MI210
未用
A口
B口(R0)
SCi
SSH
D15-D0
011
000
111
0000
A000H
设置好各控制信号(MI8-MI0),并设置好十六位数据开关为“A000H”,即“1010000000000000”后,按压一次STEP键,将立即数D0置入寄存器R0中。
4.用D1+0→R1将立即数D1(4000H)置入寄存器R1(0001)。
B口(R1)
0001
4000H
用同样的方法将立即数D1置入寄存器R1中。
5.对寄存器R0、R1初始化后,便可对R0和R1进行各种算术、逻辑运算,此时R0保存的数据为D0(A000H),R1保存的数据为D1(4000H)。
6.将开关S2S1S0置于“110”时,指示灯将显示ALU的运算结果;
将开关S2S1S0置于“000”时,指示灯将显示SVZC的状态,对应TEC-2机上H25=S,H26=V,H27=Z,H28=C。
7.对R0和R1进行各种算术、逻辑运算,课参看表3.6
(二)联机方式
启动TEC-2机,进入监控程序状态:
具体操作如下:
1.将TEC-2机的FS1~FS4置为1010,STEP/CONT置成CONT。
2.打开计算机电源开关,使计算机正常启动。
打开TEC-2电源开关,TEC-2大板左上角一排指示灯亮。
3.运行通讯程序PCEC,在DOS下命令提示(按默认设置:
选择1,N)。
联机后,进入联机状态,用A命令输入下列程序:
(ENTER表示)
>
A800ENTER
MOVR0,A000
MOVR1,4000
ADDR0,R1
SUBR0,R1
ORR0,R1
ANDR0,R1
XORRO,R1
ADCR0,R1
SHLRO
INCRO
RET
4.用“G”命令运行程序
在命令行提示符状态下输入:
G800
执行上面输入的程序
5.用“R”命令观察运行结果及状态
在命令行提示符状态下输入:
观察运行结果及状态
屏幕将显示:
R0=8001R1=4000……
6.用“T”或“P”命令单步执行
T
或
P
执行之后,观察运行结果及状态
四.实验器材
1.TEC-2机一台,电脑一台
2.TEC-2模拟软件一套
3.示波器一台(实验中没有用到)
五.实验分析与设计
1.脱机实验
接实验内容前面的步骤设置好R0和R1的值后,对R0和R1进行各种算术、逻辑运算。
根据表3.1Am29019个控制信号I8~I0的信息,可以得到下面各种算术、逻辑运算的操作。
将开关S2S1S0置于“110”时,指示灯将显示ALU的运算结果;
记录运算结果如下表3.6:
✓R0+R1→R0:
首先选择送入ALU进行运算的两个操作数据R和S的来源,操作数(两个)分别对应A、B,因此I2I1I0为001;
由于进行的是加法运算,即R+S,对应I5I4I3为000;
运算结果或有关数据是R0+R1运算后,又送往R0,即对应F→B,微码为011。
而由于A口地址是单端操作,B口支持双端,所以将R1放在A口,R0放于B口,对应微码分别为0001和0000。
这些微码确定之后,即可得到运算结果,按STEP之后,保存运算结果和状态标志位信息。
同理,可以设置其它算术、逻辑运算的微码。
操作同上。
需要注意的是SCi的设置。
表3.6
功能
MI8~6
MI5~3
MI2~0
B口
按压STEP前
按压STEP后
ALU输出
SVZC
R0+R1→R0
001
E000H
2000H
1000
R0+0→R0
R0-R1→R0
R0∨R1→R0
R0∧R1→R0
100
R0⊕R1→R0
110
0000H
0010
R0+R1+C→R0
8000H
R0*2→R0
R0+1→R0
8001H
8002H
SCi的设置:
R0+R1+C→R0,SCi=10;
R0+1→R0,SCi=01;
其余SCi=00
2.联机实验
具体操作如下
将TEC-2机的FS1~FS4置为1010,STEP/CONT置成CONT。
打开计算机电源开关,使计算机正常启动。
运行通讯程序PCEC,在DOS下命令提示(按默认设置:
联机后,进入联机状态,用A命令输入实验内容中的程序。
用G命令运行程序在命令提示符下输入:
G800,执行上面输入的程序。
用R命令观察运行结果及状态并作记录。
用T或P命令单步执行,用R命令观看结果及状态。
在命令提示符下输入:
T或P,观察运行结果及状态。
得到运行结果如下:
六.思考题
1)在脱机方式下进行运算器实验时,在按STEP键之前和按STEP键之后,ALU的输出结果及状态SVZC有何不同,为什么?
根据Am2901运算器的组成结构及其工作原理加以说明。
在脱机方式下,当设置好相应的微码和A、B口地址后,立即得到ALU的输出结果以及标志位SVZC的值(可以通过指示灯显示),但此并没有将结果保存在标志寄存器里(按STEP前)。
当按STEP之后,在脉冲的作用下,将本次(第一次)的运算结果保存在寄存器里,A、B锁存,不再接受此后的运算结果和数据,除非再来一个脉冲。
而此时ALU的输出结果则为运算器再做一次运算的结果,这时SVZC所显示的值则为上一步标志位寄存器的值。
根据Am2901运算器的组成原理结构可知,ALU是一个组合逻辑电路,当设置好A、B相应的值之后,相应的数据便会立即被传送到ALU中进行运算,并且显示出对应的运算结果,此时结果被保存在寄存器里面。
按下STEP之后,在脉冲的作用下,上一步的运算结果也会被保存在寄存器里面,但控制码和地址没有改变,所以上一步的运算结果会重新被送到ALU中进行运算,此时ALU的结果为上一步运算结果再进行一次运算的数据。
SVZC存储在状态标志寄存器中,其值的改变需要有脉冲信号的作用才能发生,所以在按STEP之前,SVZC的值不变;
按下STEP之后,SVZC显示的值才是上一步标志位的状态值。
2)写出实现以下功能操作微码:
(按下表形式书写)
A.(R0+R10)Q→R0Q,联合左移。
B.D–B→B,其中D为数据,B为B口寄存器。
C.0→R0,要求不要用立即数传送实现。
功能操作
A口地址
B口地址
A.(R10+R0)Q→R0Q
联合左移
1010
B.D–B→B
0+B→Q
D-Q→B
010
C.0→R0
R0-R0→R0
R0∧R0→R0
R0⊕R0→R0
Q∧0→R0
D∧0→R0
七.实验心得
本次实验的难度在于弄清Am2901的工作原理。
开始的时候,在阅读Am2901的逻辑电路图以及相应控制信号时,花了不少时间,而且还有一些疑问,比如说,标志位SVZC保存的值和时序的关系(状态寄存器保存的是前一个运算标志),按STEP的作用是,发送一个脉冲信号(STEP),将运算结果保存在寄存器里面,等等。
通过这次实验的学习,我基本掌握了TEC-2实验机的工作原理,掌握了Am2901的运用,同时也加深了对计算机结构的认识。
但还要多看书,多实践,为以后的更难的TEC-2实验打下坚实的基础。