1、计算机组成原理实验实验箱1. A,W寄存器实验实验要求:利用CPTH 实验仪上的K16.K23 开关做为DBUS 的数据,其它开关做为控制信号,将数据写入寄存器,这些寄存器包括累加器A,工作寄存器W,数据寄存器组R0.R3,地址寄存器MAR,堆栈寄存器ST,输出寄存器OUT。 实验目的:了解模型机中各种寄存器结构、工作原理及其控制方法。 实验电路:寄存器的作用是用于保存数据的,因为我们的模型机是8位的,因此在本模型机中大部寄存器是8 位的,标志位寄存器(Cy, Z)是二位的。CPTH 用74HC574 来构成寄存器。74HC574 的功能如下:1. 在CLK的上升沿将输入端的数据打入到8 个触
2、发器中2. 当OC = 1 时触发器的输出被关闭,当OC=0 时触发器的输出数据 74HC574工作波形图寄存器A原理图寄存器W 原理图寄存器A,W 写工作波形图连接线表:系统清零和手动状态设定:K23-K16开关置零,按RST钮,按TV/ME键三次,进入Hand.手动状态。在后面实验中实验模式为手动的操作方法不再详述将55H写入A寄存器二进制开关K23-K16用于DBUS7:0的数据输入,置数据55H置控制信号为:按住STEP脉冲键,CK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据55H被写入A寄存器。将66H写入W寄存器二进
3、制开关K23-K16用于DBUS7:0的数据输入,置数据66H置控制信号为:按住STEP脉冲键,CK由高变低,这时寄存器W 的黄色选择指示灯亮,表明选择W寄存器。放开STEP 键,CK 由低变高,产生一个上升沿,数据66H 被写入W 寄存器。注意观察: 数据是在放开STEP键后改变的,也就是CK的上升沿数据被打入。 WEN,AEN为高时,即使CK有上升沿,寄存器的数据也不会改变。 2. 运算器实验实验要求:利用CPTH 实验仪的K16.K23 开关做为DBUS 数据,其它开关做为控制信号,将数据写累加器A和工作寄存器W,并用开关控制ALU的运算方式,实现运算器的功能。实验目的:了解模型机中算术
4、、逻辑运算单元的控制方法。实验电路:CPTH 中的运算器由一片CPLD实现,有8 种运算,通过S2,S1,S0 来选择,运算数据由寄存器A及寄存器W 给出,运算结果输出到直通门D。连接线表 将55H写入A寄存器二进制开关K23-K16用于DBUS7:0的数据输入,置数据55H 置控制信号为: 按住STEP脉冲键,CK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据55H被写入A寄存器。将33H写入W寄存器二进制开关K23-K16用于DBUS7:0的数据输入,置数据33H置控制信号为:按住STEP脉冲键,CK由高变低,这时寄存器W 的
5、黄色选择指示灯亮,表明选择W寄存器。放开STEP 键,CK 由低变高,产生一个上升沿,数据33H 被写入W 寄存器。置下表的控制信号,检验运算器的运算结果注意观察: 运算器在加上控制信号及数据(A,W)后,立刻给出结果,不须时钟。 3. 数据输出实验/移位门实验实验要求:利用CPTH 实验仪的开关做为控制信号,将指定寄存器的内容读到数据总线DBUS上。实验目的:1、了解模型机中多寄存器接数据总线的实现原理。 2、了解运算器中移位功能的实现方法。实验电路:CPTH 中有7 个寄存器可以向数据总线输出数据,但在某一特定时刻只能有一个寄存器输出数据,由X2,X1,X0决定那一个寄存器输出数据。 数据
6、输出选择器原理图 连接线表置下表的控制信号,检验输出结果 4. 数据运算实验(加/减/与/或)1在CPTH 软件中的源程序窗口输入下列程序 2将程序另存为EX2.ASM,将程序汇编成机器码,调试窗口会显示出程序地址、机器码、反汇编指令。 3按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。(见“EX2.ASM程序跟踪结果”详细介绍)4在了解数据运算的原理,可以加上一些数据传输指令给累加器A或寄存器R?赋值,再运算,并观察运算结果。EX2.ASM程序跟踪结果程序的开始执行一条取指的微指令,读入程序第一条指令。ADDC
7、 A,R1:本指令为三个状态周期。在T2状态,由上次取指操作取出的指令码为21H,由IREN存入指令寄存器IR,最低两位为01(二进制),选择寄存器R1,指令码由于IREN打入uPC时,忽略掉指令的最低两位,而将uPC的最低两位置成00,uPC的值为20H,访问微程序存储器的20H单元,读出微指令值为0FFF7EFH,有效位为RRD及WEN,就是将R1内容送到工作寄存器W,uPC加1取出下条微指令在T1状态,读出的微指令值为0FFFE94H,有效位为FEN和AEN,FEN完成的操作是将标志位存入标志寄存器F(ALU内部),X2X1X0选择“ALU直通”到数据总线DBUS,S2S1S0选择的运算
8、操作为“带进位的加法运算”,AEN将DBUS上的数据存入累加器A。在T0状态,取出下条将要执行的指令。SUB A,R1:本指令有四个状态周期。在T3状态,上次取出的指令码为35H,最低两位用于寻址R1寄存器,uPC的最低两位置0,来访问uM的34H单元的微指令,读出值为0FF77FFH,将R1的值存入MAR。在T2状态,微指令为0D7BFEFH,表示用MAR做为地址从EM中读出数据送到DBUS再存到W中。在T1状态微指令为0FFFE91H,表示ALU做“减运算”,其结果直通到DBUS,再存入中,同时保存标志位。T0状态为取指操作。AND A,#55: 本指令为三个状态周期。在T2状态,微指令值
9、为0C7FFEFH,表示以PC做为地址,从EM中读出数据送到DBUS,再将DBUS数据存W中。在T1状态,微指令为0FFFE93H,表示A和W做“逻辑与”运算,结果直通到DBUS,再存入A中,并保存标志位。OR A,02:本指令有四个状态周期。在T3状态,微指令为0C77FFFH,表示以PC做为地址,从EM中读出数据送到DBUS,并存MAR中。在T2状态,微指令为0D7BFEFH,表示以MAR做为地址,从EM中读出数据送到DBUS,并存入W中。在T1状态微指令为0FFFE92H,表示A和W做“逻辑或”运算,结果“直通”到DBUS并存入A中。T0状态为取指操作。 5. 移位/取反实验1在CPTH
10、 软件中的源程序窗口输入下列程序2将程序另存为EX3.ASM,将程序汇编成机器码,调试窗口会显示出程序地址、机器码、反汇编指令。3按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。(见“EX3.ASM程序跟踪结果”详细介绍)EX3.ASM程序跟踪结果程序的开始执行一条取指的微指令,读入程序第一条指令。MOV A, #55: 将累加器的值设为055H,以便下面观察。RR A:本指令为两个状态周期。在T1状态,由上次取指操作取出的指令码为D0H,访问微程序存储器的20H单元,读出微指令值为0FFFCB7H,有效位为CN
11、、FEN及AEN,表示不带进位移位,运算器控制S2S1S0=111(二进制)表示运算不运算,输出结果就为A的值,X2X1X0=101(二进制)表示,运算器“右移”输出到总线,FEN将标志位保存,AEN将DBUS内容存入A中,uPC加1取出下条微令。在T0状态,取出下条将要执行的指令。RLC A:本指令有两个状态周期。在T1状态微指令为0FFFED7H,CN=1表示带进位移位,S2S1S0=111表示ALU不做运算,直接输出A内容,X2X1X0=110(二进制)表示,运算器“左移”输出到DBUS,AEN表示DBUS内容存入A中,FEN表示保存标志位。T0状态为取指操作。取出下条将要执行的指令。CPL A: 本指令为两个状态周期。在T1状态,微指令为0FFFE96H,S2S1S0=110表示ALU做“取反”运算,X2X1X0=100(二进制)表示,运算器结果直通到DBUS,再存入A中,并保存标志位。T0状态为取指操作。取出下条将要执行的指令。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1