实验八Word格式文档下载.docx
《实验八Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验八Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
控制门输出设备
数据LED-G
控制信号图8-1模型机结构框图
五工作原理:
1、数据格式:
本实验计算机采用定点补码表示法表示数据,字长为8位,其格式如下:
7
654321
符号
尾数
其中第7位为符号位,数值表示范围是:
-1≤X<
1
2、指令格式:
1)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址其格式如下:
7654
32
10
OP-CODE
rs
rd
其中OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
Rs或rd
选定寄存器
00
R0
01
R1
10
R2
9条算术逻辑指令的名称、功能和具体格式见表8-2。
2)访问及转移指令
本机设计有2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式如下:
76
54
M
D
其中OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如下:
寻址模式M
有效地址E
说明
00
01
10
11
E=D
E=(D)
E=(RI)+D
E=(PC)+D
直接寻址
间接寻址
RI变址寻址
相对寻址
本机规定变址寄存器RI指定为寄存器R2。
3)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
addr
其中,addr=01时,选中“数据输入电路”中的开关组作为输入设备,addr=10时,选中“输出显示电路”中的数码管作为输出设备。
4)停机指令
指令格式如下:
HALT指令,用于实现停机操作。
3、指令系统
本机共有16条基本指令,其中算术逻辑指令9条,访问内存指令和程序控制指令4条。
输入输出指令2条,其它指令1条。
表8-1列出了各条指令的格式、汇编符号和指令功能。
汇编符号
指令的格式
功能
CLRrd
MOVrs,rd
ADCrs,rd
SBCrs,rd
011100rd
1000rsrd
1001rs rd
1010rsrd
0rd
rsrd
rs+rd+cyrd
rs-rd-cyrd
INCrd
ANDrs,rd
COMrd
RRCrs,rd
1011rsrd
1100rsrd
1101rsrd
1110rsrd
rd+1rd
rs∧rdrd
rdrd
cyrs
rsrd
RLCrs,rd
1111rsrd
LDAM,D,rd
00M00rd
D
Ers
STAM,D,rd
00M01rd
D
rdE
JMPM,D
00 M 10 00
D
E PC
BZCM,D
00M1100
D
当CY=1或Z=1时,
EPC
INaddr,rd
OUTaddr,rd
010001rd
010110rd
addrrd
rdaddr
HALT
01100000
停机
表8-1实验八指令格式
4.设计微代码
首先设计三个控制操作微程序:
存储器读操作(MRD):
拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。
存储器写操作(MWE):
拨动清零开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。
启动程序(RUN):
拨动开关CLR对地址、指令寄存器清零后,指令译码输入CA1、CA2为“11”时,按“单步”键,即可转入到第01号“取址”微指令,启动程序运行。
本系统设计的微程序字长共24位,其控制位顺序如下:
24
23
22
21
20
19
18
17
16
151413
121110
987
6
5
4
3
2
S3
S2
S1
S0
Cn
WE
1A
1B
F1
F2
F3
uA5
uA4
uA3
uA2
uA1
uA0
其中uA5-uA0为6位的后续微地址,F1、F2、F3为三个译码字段,分别由三个控制位译码出多位。
F3字段包含P1-P4四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入囗,从而实现微程序的顺序、分支、循环运行。
F1、F2、F3三个字段的编码方案如表8-2:
F1字段
F2字段
F3字段
选择
选择
000
LDRi
RAG
P1
001
LOAD
ALU-G
AR
010
LDR2
RCG
P3
011
100
LDR1
RBG
P2
101
LAR
PC-G
LPC
110
LDIR
299-G
P4
表8-2
系统涉及到的微程序流程见图8-2,当拟定“取指”微指令时,该微指令的判别测试字段为P1测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。
本实验用指令寄存器的前4位(IR7-IR4)作为测试条件,出现12路分支,占用12个固定微地址单元,P2测试结果出现4路分支,占用4个固定微地址单元,P3测试结果出现2路分支,占用2个固定微地址单元
控制操作为P4测试,它以CA1、CA2作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。
注意:
微程序流程图上的微地址为8进制。
当全部微程序设计完毕后,应将每条微程序代码化,表8-3即为将图8-2的微程序流程按微程序格式转化而成的二进制微代码表。
指令寄存器用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。
指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试P1,通过节拍脉冲T4的控制以便识别所要求的操作。
“指令译码器”根据指令中的操作码译码强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。
IR7-IR2为指令寄存器的第7-2位。
本系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备;
另一种是数码管,它作为输出设备。
输入时,二进制开关数据直接经过三态门送到数据总线上,只要开关状态不变,输入的信息也不变。
输出时,将输出数据送到外部数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码管显示。
控制开关
00
10
P(4)测试
MWE(01)MRD(00)RUN(11)
PCAR,PC+111PCAR,PC+11013
(D_INPUT)D_BUSLT114RAMD_BUSLT11201
LT1RAM74LT1LED73
图8-2(a)微程序流程图
六、实验参考代码:
我们按程序流程图译出适合本实验系统所有机器指令的微代码,供学生自己编程实验,加深对较完整的实验计算机的认识。
这里只提供以下简单的实验程序:
地址(二进制)指令(二进制)助记符说明
0000000001000100IN,R0DATA1R0
0000000101000110IN,R2DATA2R2
0000001010010010ADCR0,R2[R0]+[R2]R2
0000001111111000RLCR2,R0Cy[R2]
[R2][R0]
0000010010000010MOVR0,R2
0000010101011010OUT直接寻址方式
0000011000001100JMP
0000011100000000
0000100000100000
表8-3为根据本实验程序流程图设计的二进制微代码表:
微地址
S3S2S1S0MCNWE1A1B
UA5--UA0
000000
000000000
111
110
001000
000001
101
000010
000000010
110
111101
000011
100
000100
100
100000
000101
000110
000111
101
001010
001001