实验报告5.docx
《实验报告5.docx》由会员分享,可在线阅读,更多相关《实验报告5.docx(42页珍藏版)》请在冰豆网上搜索。
实验报告5
实验5CPU组成与指令周期实验
学号:
姓名:
院系:
预习:
实验前请预习课本第344页11.7节。
一.结合实验4介绍的机器指令格式,对机器指令系统组成的简单程序进行译码。
内存地址
机器指令
机器代码
IR7IR6IR5IR4
IR3IR2
IR1IR0
00H
ADDR1,R0
01H
JCR3
02H
STAR1,[R2]
03H
LDAR2,[R2]
04H
ANDR2,R0
05H
SUBR2,R3
06H
OUTR2
07H
STP
二.将编程开关拨到“正常”位置,控制器的TJ与时序电路的TJ相连。
将有关控制信号和二进制开关对应接好,仔细复查一遍,然后接通电源。
接线图:
控制器
LDIR
PC+1
LDPC#
AR+1
LDAR#
LDDR1
LDDR2
LDRi
数据通路
控制器
SW_BUS#
Rs_BUS#
ALU_BUS#
RAM_BUS#
CER#
CEL#
数据通路
控制器
LR/W#
Cn#
M
S0
S1
S2
S3
数据通路
控制器
进位C
IR7
IR6
IR5
IR4
数据通路
数据通路
数据通路
RS1
RS0
RD1
RD0
WR1
WR0
三.存程序代码,设置通用寄存器R0、R1、R2和R3的第一组值及存储器相关单元的数据。
本组的寄存器数据是R0=35H,R1=43H,R2=10H,R3=07H。
存储器10H单元的值为55H。
(一)设置通用寄存器R0、R1、R2和R3的值。
令DP=0,DB=0,使系统处于连续运行状态。
令SWC=0,SWB=1,SWA=1,使系统处于写寄存器状态WRF。
按CLR#按钮,使系统处于初始状态。
在SW7-SW0上设置一个存储器地址0FFH,该存储器地址供设置通用寄存器使用。
实验步骤
观察分析结果(用16进制来表示各类指示灯)
1.按CLR#按钮,使实验系统处于初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
0
2.按QD按钮,将0FFH写入左端口地址寄存器AR
执行的微操作:
一.P0。
判别控制台命令,进入写寄存器状态
二.SW-BUS#,LDAR#,LDPC,TJ。
从开关输入地址到AR和PC
PC=FFH
IR=00H
AR=FFH
DBUS=FFH
下一条微指令:
0
1
0
8
0
0
0
D
微地址:
1
D
3.按QD按钮,将00H写入指令寄存器IR,选择R0
执行的微操作:
一.CEL#,SW-BUS#。
将00从左端口写入存储器
二.CER,LDIR,TJ。
从RAM右端口读指令到IR
PC=FF
IR=00
AR=FF
DBUS=00
下一条微指令:
0
0
0
C
0
4
1
D
微地址:
0
E
4.按QD按钮,将35H写入IR指定的R0寄存器
执行的微操作:
SW-BUS#,LDRi,TJ。
将35H写入寄存器
PC=FF
IR=00
AR=FF
DBUS=35
下一条微指令:
0
1
0
8
0
0
0
D
微地址:
1
D
5.按QD按钮,将01H写入指令寄存器IR,选择寄存器R1
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
6.按QD按钮,将43H写入IR指定的R1寄存器
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
(二)存程序机器代码。
从00地址开始存入程序的8个机器代码。
在10H单元存入55H,作为10H单元的初值,以检查LDA和STA两条指令的作用。
令DP=0,DB=0,使系统处于连续运行状态。
令SWC=0,SWB=0,SWA=1,使系统处于写双端口存储器工作方式WRM。
实验步骤
观察分析结果(用16进制来表示各类指示灯)
1.按CLR#按钮,使实验系统处于初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
0
2.按QD按钮,将00H写入左端口地址寄存器AR
执行的微操作:
一.P0。
判别控制台命令,进入写存储器状态
二.SW-BUS#,LDAR#,TJ。
从开关输入地址到AR
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
1
0
8
0
0
0
5
微地址:
0
4
3.按QD按钮,将第一个机器代码写入存储器00H单元
执行的微操作:
一.CEL#,SW-BUS#。
将代码写入左端口
二.AR+1,TJ。
AR指向存储器下一个地址
PC=00H
IR=00H
AR=01H
DBUS=01H
下一条微指令:
0
1
0
8
0
0
0
5
微地址:
0
4
4.按QD按钮,将第二个机器代码写入存储器01H单元
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
5按QD按钮,将第三个机器代码写入存储器02H单元
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
6
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
7
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
8
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
9
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
10
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
11.按CLR#按钮,使实验系统恢复到初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
8
12.将10H写入左端口地址寄存器AR
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
13.将55H写入存储器10H单元
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
(三)用单拍DP方式执行一遍程序。
置SWC=0,SWB=0,SWA=0,DP=1,DB=0,使实验系统处于单拍运行状态。
置SW7-SW0=00H,使程序从地址00H开始执行。
实验步骤
观察分析结果(用16进制来表示各类指示灯)
1.按CLR#按钮,使系统处于初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
0
2.按QD按钮,启动程序
执行的微操作:
P0。
判别控制台指令,进入启动程序状态PR
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
8
2
0
0
F
微地址:
0
8
3.按QD按钮,将程序起始地址00写入PC
执行的微操作:
SW-BUS#,LDPC#
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
8
0
0
8
9
0
微地址:
0
F
4.按QD按钮,读出第一条程序指令到IR
执行的微操作:
CER#,LDIR,P1。
判别指令类型
PC=00H
IR=
AR=
DBUS=
下一条微指令:
0
0
0
3
0
0
1
8
微地址:
1
0
5.按QD按钮,从寄存器读数到DR1和DR2
执行的微操作:
LDDR2,LDDR1
PC=00H
IR=
AR=
DBUS=
下一条微指令:
9
0
2
4
1
0
0
F
微地址:
1
8
6.按QD按钮,将加法的结果存入寄存器
执行的微操作:
A加B,ALU-BUS#,LDRi,PC+1。
进位C=
PC=01H
IR=
AR=
DBUS=
下一条微指令:
0
0
8
0
0
8
9
0
微地址:
0
F
7.按QD按钮,读出第二条程序指令到IR
执行的微操作:
CER#,LDIR,P1。
判别指令类型
PC=01H
IR=
AR=
DBUS=
下一条微指令:
0
0
0
3
0
0
1
8
微地址:
1
0
8
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
9
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
10按QD按钮,读出第三条程序指令到IR
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
11
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
12
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
13按QD按钮,读出第四条程序指令到IR
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
14
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
15
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
16按QD按钮,读出第五条程序指令到IR
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
17
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
18
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
19按QD按钮,读出第六条程序指令到IR
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
20
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
21
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
22按QD按钮,读出第七条程序指令到IR
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
23
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
24按QD按钮,读出第八条程序指令到IR
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
25
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
(四)用连续方式执行一遍程序。
由于上面的单拍执行程序,已破坏了寄存器R1、R2和存储器10单元的内容,因此需要重新设置它们的值。
设置R1=35H,R1=43H,从控制台指令设置写寄存器状态WRF,使系统处于连续运行状态。
令DP=DB=SWC=SWB=SWA=
实验步骤
观察分析结果(用16进制来表示各类指示灯)
1.按CLR#按钮,使实验系统处于初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
0
2.按QD按钮,将0FFH写入左端口地址寄存器AR
执行的微操作:
一.P0。
判别控制台命令,进入写寄存器状态
二.SW-BUS#,LDAR#,LDPC,TJ。
从开关输入地址到AR和PC
PC=FFH
IR=00H
AR=FFH
DBUS=FFH
下一条微指令:
0
1
0
8
0
0
0
D
微地址:
1
D
3.按QD按钮,将00H写入指令寄存器IR,选择R0
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
4.按QD按钮,将35H写入IR指定的R0寄存器
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
5.按QD按钮,将01H写入指令寄存器IR,选择寄存器R1
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
6.按QD按钮,将43H写入IR指定的R1寄存器
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
设置存储器10H单元的内容为55H,从控制台指令设置写存储器状态WRM,使系统处于连续运行状态。
令DP=DB=SWC=SWB=SWA=
实验步骤
观察分析结果(用16进制来表示各类指示灯)
1.按CLR#按钮,使实验系统恢复到初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
8
2.将10H写入左端口地址寄存器AR
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
3.将55H写入存储器10H单元
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
设置实验系统处于连续运行状态,置DP=0,DB=0,SWC=0,SWB=0,SWA=0,SW7-SW0=00H,使程序从地址00H开始执行。
实验步骤
观察分析结果(用16进制来表示各类指示灯)
1.按CLR#按钮,使实验系统处于初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
0
2.按QD按钮,连续执行程序
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
3.按QD按钮
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
4.按QD按钮,
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
四.存程序代码,设置通用寄存器R0、R1、R2和R3的第二组值及存储器相关单元的数据。
本组的寄存器数据是R0=86H,R1=88H,R2=10H,R3=07H。
存储器10H单元的值为55H。
(一)设置通用寄存器R0、R1、R2和R3的值。
令DP=0,DB=0,使系统处于连续运行状态。
令SWC=0,SWB=1,SWA=1,使系统处于写寄存器状态WRF。
按CLR#按钮,使系统处于初始状态。
在SW7-SW0上设置一个存储器地址0FFH,该存储器地址供设置通用寄存器使用。
实验步骤
观察分析结果(用16进制来表示各类指示灯)
1.按CLR#按钮,使实验系统处于初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
0
2.按QD按钮,将0FFH写入左端口地址寄存器AR
执行的微操作:
一.P0。
判别控制台命令,进入写寄存器状态
二.SW-BUS#,LDAR#,LDPC,TJ。
从开关输入地址到AR和PC
PC=FFH
IR=00H
AR=FFH
DBUS=FFH
下一条微指令:
0
1
0
8
0
0
0
D
微地址:
1
D
3.按QD按钮,将00H写入指令寄存器IR,选择R0
执行的微操作:
一.CEL#,SW-BUS#。
将00从左端口写入存储器
二.CER,LDIR,TJ。
从RAM右端口读指令到IR
PC=FF
IR=00
AR=FF
DBUS=00
下一条微指令:
0
0
0
C
0
4
1
D
微地址:
0
E
4.按QD按钮,将86H写入IR指定的R0寄存器
执行的微操作:
SW-BUS#,LDRi,TJ。
将86H写入寄存器
PC=FF
IR=00
AR=FF
DBUS=86
下一条微指令:
0
1
0
8
0
0
0
D
微地址:
1
D
5.按QD按钮,将01H写入指令寄存器IR,选择寄存器R1
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
6.按QD按钮,将88H写入IR指定的R1寄存器
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
(二)存程序机器代码。
从00地址开始存入程序的8个机器代码。
在10H单元存入55H,作为10H单元的初值,以检查LDA和STA两条指令的作用。
令DP=0,DB=0,使系统处于连续运行状态。
令SWC=0,SWB=0,SWA=1,使系统处于写双端口存储器工作方式WRM。
实验步骤
观察分析结果(用16进制来表示各类指示灯)
1.按CLR#按钮,使实验系统处于初始状态
执行的微操作:
初始化
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
0
0
0
0
0
4
8
微地址:
0
0
2.按QD按钮,将00H写入左端口地址寄存器AR
执行的微操作:
一.P0。
判别控制台命令,进入写存储器状态
二.SW-BUS#,LDAR#,TJ。
从开关输入地址到AR
PC=00H
IR=00H
AR=00H
DBUS=00H
下一条微指令:
0
1
0
8
0
0
0
5
微地址:
0
4
3.按QD按钮,将第一个机器代码写入存储器00H单元
执行的微操作:
一.CEL#,SW-BUS#。
将代码写入左端口
二.AR+1,TJ。
AR指向存储器下一个地址
PC=00H
IR=00H
AR=01H
DBUS=01H
下一条微指令:
0
1
0
8
0
0
0
5
微地址:
0
4
4.按QD按钮,将第二个机器代码写入存储器01H单元
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
5按QD按钮,将第三个机器代码写入存储器02H单元
执行的微操作:
PC=
IR=
AR=
DBUS=
下一条微指令:
微地址:
6
执行的微操作:
PC=
IR