武汉理工大学《计算机组成原理》课程设计说明书
STA addr (A)->addr
3.3.2 操作数寻址方式及编码
3.3.3 指令系统 指令助记符 取指微指令 指令功能 指令编码 微周期 微操作 T0: PC->地址总线->RAM RAM->数据总线->IR1 ADD A,R0 ADD A,R1 ADD A,R2 ADD A,R3 SUB A,R0 SUB A,R1 SUB A,R2 SUB A,R3 MOV A,@R0 MOV A,@R1
1.直接地址寻址 如:LDA
STA
addr
(addr)->A
addr (A)->addr
2.寄存器直接寻址
指令字中含有寄存器选择码,决定选择哪个寄存器进行操作。
A, Ri
(Ri)->A
如:MOV
3.寄存器间接寻址 如:MOV
A, @Ri
4.立即数寻址 如:MOV
MOV
A, #data Ri, #data
(A)+(Ri)->A 0C 0D 0E 0F (A)-(Ri)->A 1C 1D 1E 1F (Ri)->A 2C 2D 6
T0: T1: T2: T3: T0: T1: T2: T3: T0: T1: A->数据总线->DR1 Ri->数据总线->DR2 ALU->数据总线->A、置CY 取指微指令 A->数据总线->DR1 Ri->数据总线->DR2 ALU->数据总线->A、置CY 取指微指令 Ri->数据总线->DR2 IR2->地址总线->RAM->A 武汉理工大学《计算机组成原理》课程设计说明书
MOV A,@R2 MOV A,@R3 MOV A,R0 MOV A,R1 MOV A,R2 MOV A,R3 MOV R0,A MOV R1,A MOV R2,A MOV R3,A MOV A,#data Data->A (A)->Ri (Ri)->A 2E 2F 3C 3D 3E 3F 4C 4D 4E 4F 5F T2: T0: T1: 取指微指令 Ri->数据总线->A 取指微指令 T0: T1 A->数据总线->Ri 取指微指令 T0: T1 RAM->数据总线->A 取指微指令 RAM->数据总线->A 取指微指令 MOV R0,#data Data->A MOV R1,#data MOV R2,#data MOV R3,#data LDA addr (addr)->A 6C 6D 6E 6F 7F T0: T1 T0: T1: T2: RAM->数据总线->IR2 IR2->地址总线,RAM->A 取指微指令 RAM->数据总线->IR2 IR2->地址总线,A->RAM 取指微指令 A<<1、置CY 取指微指令 A>>1、置CY 取指微指令 条件成立:RAM->PC 取指微指令 STA addr (A)->addr 8F T0: T1: T2: RLC A C、A左移一位 9F T0: T1 RRC A C、A右移一位 AF T0: T1 JZ addr A=0 Addr->PC B3 T0: T1 7
武汉理工大学《计算机组成原理》课程设计说明书
JC addr Cy=0 Addr->PC B7 T0: T1 条件成立:RAM->PC 取指微指令 RAM->PC 取指微指令 A->数据总线->DR1 RAM->数据总线->DR2 ALU->数据总线->A 取指微指令 A->数据总线->DR1 RAM->数据总线->DR2 ALU->数据总线->A 取指微指令 停机 JMP addr Addr->PC BF T0: T1 ORL A,#data (A)或data->A CF T0: T1: T2: T3: ANL A,#data (A)或data->A DF T0: T1: T2: T3: HALT 停机 FF T0: 3.4 微程序设计及其实现方法
在本次实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可以由微代码直接实现。如果采用多组编码译码、那么24位微代码可实现2n个互斥的微操作控制信号。
由于模型机指令系统规模叫小,功能也不太复杂,所以采用全水平不编码纯控制场
的格式。在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0-MD7,这种方法称为“按操作码散转”(如下表所示)。
微程序首地址形成 MD7 0
按操作码散转 指令操作码 MD7、MD6 17 16 15 14 微程序首地址 MD1、MD0 MD7~MD6 MD6 0 MD5 17 MD4 16 MD3 15 MD2 14 MD1 1 MD0 1 8
武汉理工大学《计算机组成原理》课程设计说明书
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 003H 007H 00BH 00FH 013H 017H 01BH 01FH 023H 027H 02BH 02FH 033H O37H 03BH 03FH 每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。
微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址。例如:确定了一条程序的微程序入口地址为07H,那么当执行完07H这条微指令后微地址加1,指向08H微地址。微地址寄存器由2片74LS161组成,当模型机在停止状态下,微地址被清零。当实验平台开始运行时,微地址从00H开始运行。且00H放置一条取值指令,根据程序开始地址从内存中读出第一条指令。
00H 取指微指令 01H 02H 03H 减法指令微程序(1) 04H 减法指令微程序(2) 9
武汉理工大学《计算机组成原理》课程设计说明书
05H 06H 07H MOV指令微程序(1) 08H MOV指令微程序(2) 09H MOV指令微程序(3) 0AH 0BH 0CH 0DH 。。。 。。。
3.5 模型机中的时序安排设计
由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。
在本实验中为了让实验者更好的观察实验的各个中间过程中个寄存器的值,由监控
单元产生一个PLS-O的信号来控制时序产生(如图2-9-2)。PLS-O信号经过时序单元的处理产生了4个脉冲信号。4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。这4个脉冲信号分别是:
PLS1:微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。 PLS2:PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数
器(跳转指令)等功能。
PLS3:把24位微指令打入3片微指令锁存器。
PLS4:把当前总线上的数据打入微指令选通的寄存器中。
10