组成原理课程设计具有运算及跳转功能的复杂模型机的设计文档格式.docx
《组成原理课程设计具有运算及跳转功能的复杂模型机的设计文档格式.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计具有运算及跳转功能的复杂模型机的设计文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
符号
尾数
其中第7位为符号位,数值表示范围是:
-
≤X≤
-1。
(二)指令格式
模型机设计三大类指令共八条,其中包括算术逻辑指令、I/O指令、访问及转移指令。
a)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7654
32
10
OP-CODE
RS
RD
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
RS或RD
选定的寄存器
00
R0
01
R1
10
R2
b)访问指令及转移指令
模型机设计一条访内指令,即存数(STA),一条转移指令,即无条件转移(JMP),指令格式为:
76
54
M
D
其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如下:
寻址模式
有效地址E
说明
E=D
直接寻址
c)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
7654
addr
其中,addr=01时,选中“INPUTDEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUTDEVICE”中的数码块作为输出设备。
(三)9条算术逻辑指令的名称、功能和具体格式见表3-3-1。
表3-1算术逻辑指令的助记符、功能和具体格式
助记符
指令格式
功能
CLRRD
0111
0RD
MOVRS,RD
1000
RS
RSRD
INCRD
1011
RD+1RD
RLCRS,RD
1111
STAM,D,RD
00
(E)RD
RD(E)
EPC
JMPM,D
INaddr,RD
0100
(addr)RD
OUTaddr,RD
0101
RD(addr)
(四)复杂模型的数据通路图如图3-4-1所示
复杂模型的数据通路图
(五)微指令格式
S3、S2、S1、S0、M、Cn控制运算的工作方式:
WE控制主存、输入设备和输出设备的读写功能;
A9、A8通过74LS139二四译码器译码输出
、
,分别接输入设备的SW-B、主存的CE、输出设备的LED-B及其它情况。
微指令字长共24位,其控制位顺序如表6-1所示:
表6-1控制位顺序表
24
23
22
21
20
19
18
17
16
151413
121110
987
6
5
4
3
2
1
S3
S2
S1
S0
M
CN
WE
A9
A8
A
B
C
uA5
uA4
uA3
uA2
uA1
uA0
A字段
15
14
13
选择
LDRi
LDDR1
LDDR2
LDIR
LOAR
LDAR
B字段
12
11
RS-B
RD-B
RI-B
299-B
ALU-B
PC-B
C字段
9
8
P
(1)
P
(2)
P(3)
P(4)
AR
LDPC
其中UA5~UA0为6位的后续微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。
C字段中的P
(1)~P(4)是四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。
AR为算术运算是否影响进位及判零标志控制位,其为零有效。
B字段中的RS-B、R0-B、RI-B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通。
指令寄存器(IR)用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到指令寄存器中,然后再对其进行译码、运行。
指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试,通过节拍脉冲T4的控制以便识别所要求的操作。
“指令译码器”根据指令中的操作码译码强置微控制器的微地址,使下一条微指令指向相应的微程序首地址。
上述系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备;
另一块是数码块,它作为输出设备。
例如,输入时,二进制开关数据直接经过三态门送到总线上,只要开关顺序不变,输入的信息就不变。
输出时,将输出数据送到数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码块显示。
(六)实验连线图
图4-6--1实验连线图
(一)首先根据指令要求编写机器指令代码,根据表3-3-1及数据通路图3-4-1,编写程序。
⏹START:
IN01,R001000100$P0044
⏹MOVR0,R110000001$P0181
⏹INCR110110101$P02B5
⏹CLRR001110000$P0370
⏹OUT10,R001011000$P0470
⏹RLCR1,R211110110$P05F6
⏹STA00,20H,R200000110$P0606
00200000$P0720
⏹JMP00,START00001000$P0808
00000000$P0900
(二)设计微程序流程图,主要是编写适当的设计微指令下址字段,设计如图4-2-1
(三)编写微指令二进制代码,如表4-3-1
表4-3-1微指令二进制代码表
$M0101ED82
$M0200C050
$M1001ED83
$M0300A004
$M0400E0A0
$M21028401
$M2205DB81
$M14001001
$M15030401
$M173D9A01
$M18019201
$M1B01A205
$M05019A01
$M1F318206
$M06198807
$M07019801
$M00018108
$M0901ED8A
$M0A00200C
$M0C068A09
$M0801ED8D
$M0D00A00E
$M0E070A08
$M0B018001
(一)按照图4-6-1的实验连线图连接好电路,
然后测试接线是否正确:
把实验箱与计算机主机用通信线连接好,使实验箱上的编程开关MJ20处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
运行程序CMPP,进入软件界面,装载机器指令及微指令后,选择“【运行】-【通路图】-【复杂模型机】”功能菜单打开相应动态数据通路图,在计算机的操作界面上,选定菜单【测试】—【复杂模型机】,按提示信息操作即可。
如出现移位寄存器错误可以忽略,因为实验没有使用移位寄存器。
通过测试以后,将写好的微程序和微指令放在同一个txt文件中,用联机软件的“【转储】—【装载】”功能将该实验对应的文件载入实验系统。
按照机器指令单步执行调试:
1、IN01,R0;
输入指令,实验时我们向R0输入数据16H,此时(R0)=16H
2、MOVR0,R1;
将R0寄存器的值赋予R1,此时(R1)=16H
3、INCR1;
R1寄存器的值自增,此时(R1)=17H
4、CLRR0;
R0寄存器清零;
此时(R0)=0
5、OUT10,R0;
输出R0寄存器的值,此时LED灯显示00
6、RLCR1,R2;
R1寄存器的值左移一位赋予R2寄存器,
此时(R0)=0,(R1)=16H,(R2)=32H
7、STA00,20H,R2;
将R2的值赋予20号存储单元,
此时(20H)=32H
8、JMP00,START;
回到开始
6.课程设计的运行结果及回答问题
1.运行结果:
输入12H,最后(R0)=0H,(R1)=13H,(R2)=26H,(20H)=26H
输入16H,最后(R0)=0H,(R1)=16H,(R2)=32H,(20H)=32H
2.机器指令的控制信号:
(1)公共取指令T1:
LOAR,T3,PC-B,LDPC,T4;
(2)公共译码指令T2:
CE,W/R,LDIR,T3;
IN01,R0:
T3:
LDR0,T4,SW-B
MOVR0,R1:
R0-BUS,LDR1,T4
INCR1:
R1-BUS,LDDR1,T4;
T4:
ALU-BUS,CN,S1,S0,M,S2,S3,T4,LDR1;
CLRR0:
ALU-BUS,CN,S0,S1,S2,S3,M,LDR0,T4
OUT10,R0:
R0-BUS,LED-BUS;
RLCR1,R2:
R1-BUS,M,S0,S1;
299-BUS,CY=0
T5:
299-BUS,LDR2,T4
STA00,20H,R2:
T4,LDPC,PC-BUS,T3,LDAR;
LDDR1,T4,W/R,CE;
CE,W/R,T3,LDAR;
T6:
R2-BUS,W/R,CE;
JMP00,START:
LDDR1,