复杂模型机实验报告.
信息学院
《计算机组成原理》上机实验报告
学号
姓名
班级
课程名称
计算机组成原理
上机内容
复杂模型机实验
实验性质:□综合性实验□设计性实验■验证实验
实验时间
2012年12月18日
实验地点
睿智4楼102
实验报告:(包括目的、方法、原理、结果或实验小节等)。
根据复杂模型机的指令系统,编写实验程序,并运行程序,观察和记录运行结果。
1、ZY15Comp12BB计算机组成原理教学实验系统一台
2、排线若干
3.PC机一台
1、数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
数据位数
D7
D6D5D4D3D2D1D0
用途是:-1≤X<1。
2、指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器、转移指令和停机指令。
目的寄存器(RD)
其中,在IN指令中,addr=01,选中“INPUT”中的开关组作为输入设备,在OUT指令中,addr=10时,表示选中“OUTPUT UNIT”中的数码块作为输出设备。
(4)停机指令
指令格式如下:
数据位数
D7D6D5D4
D3D2
D1D0
值
0110
00
00
HALT指令,机器码为60H,用于实现停机操作。
07 00
08 59OUT R1;R1OUTPUT UNIT显示;
0960HALT;停机
( 2 )以上程序的机器指令如下:
$P0044$P01F0$P02F1
$P0344$P04E0$P0591
$P060C$P0700$P0859
$P0960
(3)微程序,并保存为“复杂模型机.txt”如下:
$M00018108 $M0101ED82 $M0200C050
uA1
uA0
A字段
B字段
P字段
15
14
13
控制信号
12
11
10
控制信号
9
8
7
控制信号
0
0
0
0
0
0
0
0
0
0
0
1
LDRI
0
0
1
RS_G
0
0
1
P1
0
1
0
LDDR1
0
1
0
RD_G
0
1
0
P2
0
1
1
LDDR2
0
1
1
RI_G
0
1
1
P3
1
0
0
LDIR
1
0
0
299_G
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
AR
(5)按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二进制代码表转换为联机操作时的十六进制格式文件。
微程序
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
控制信号
S3
S2
S1
S0
M
CN
RD
M17
M16
A
B
P
uA5
uA4
uA3
uA2
$M0300A004 $M0400E0A0 $M0500E006
$M0600A007 $M0700E0A0 $M0801ED8A
$M0901ED8C $M0A00A03B $M0B018001
$M0C00203C $M0D00A00E $M0E01B60F
$M0F95EA25 $M1001ED83 $M1101ED85
(2)访存指令及转移指令
模型机设计2条访存指令,即存数(STA)、取数(LD),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
数据位数
D7D6
D5D4
D3D2
D1D0
D7……D0
用途
00
寻址模式M
操作码OP-CODE
目的寄存器编码RD
位移量D
其中,OP-CODE为操作码,rd为目的寄存器地址(LD、STA指令使用)。D为位移量(正负均可),M为寻址模式,其定义如下:
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
复杂模型机共有16条基本指令,其中算数逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其他指令1条。
1、按照以下逻辑图在试验箱上连接好电路图:
图2-9复杂模型机实验
2、用记事本编写程序,如下:
(1)机器指令如下:
地址内容助记符说明
00 44IN R0;INPUT数据R0,第一次采集数据(设输入数据为07H)
$M300D8171 $M31959B41 $M32019A01
$M3301B435 $M3405DB81 $M35B99B41
$M360D9A01 $M37298838 $M38019801
$M3919883A $M3A019801 $M3B070A08
$M3C068A09
3、打开联机软件,用“操作”菜单中的“装载文件”将文件载入到软件中,并用“操作”菜单中的“读写微程序控制器”来查看程序是否有错。
寻址模式M
有效地址E
说明
00
D
直接寻址
01
(D)
间接寻址
10
(RI)+D
RI变址寻址
11
(PC)+D
相对寻址
本模型机规定变址寄存器RI指定为寄存器R2。
(3)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
数据位数
D7D6D5D4
D3D2
D1D0
用途
操作码(OP-CODE)
地址(addr)
01F0RLC R0, R0;R0带进位左循环移位一次
02F1RLC R0, R1;第二次左移后保存到R1中
03 44IN R0;输入开关数据R0,第二次采集数据(设输入数据仍为07H)
04E0RRC R0, R0;R0带进位右循环移位一次
0591ADC R0, R1;两数据相加
060CBZC 00;若有进位或结果为零,则跳到00地址单元
$M1201ED8D $M1301EDA6 $M14001001
$M15030401 $M16018016 $M173D9A01
$M18019201 $M1901A22A $M1A01B22C
$M1B01A232 $M1C01A233 $M1D01A236
$M1E318237 $M1F318239 $M20009001
$M21028401 $M2205DB81 $M230180E4
$M24018001 $M2595AAA0 $M2600A027
$M2701BC28 $M2895EA29 $M2995AAA0
$M2A01B42B $M2B959B41 $M2C01A42D
$M2D05AB6E $M2E0DAA2F $M2F01AA30
(1)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
数据位数
D7D6D5D4
D3D2
D1D0
用途
操作码(OP-CODE)
源寄存器(RS)
目的寄存器(RD)
规定:
选中的寄存器(RS或RD)
R0
R1
R2
寄存器的编码
00
01
10
算术逻辑指令的名称、功能和具体格式见表2—3。