计算机组成原理实验五扩展指令设计.doc
文本预览下载声明
实验五 扩展指令设计
实验目的
1. 进一步掌握计算机组合逻辑控制器的功能、组成知识。
2. 进一步学习计算机各类典型指令的执行流程。
3. 学习组合逻辑控制器的设计过程和相关技术。
实验设备
微机、JETEG电缆、组成原理实验箱。
实验步骤
(1)确定所设计的指令的汇编语句和指令格式,包括操作码的编码、操作数。
(2)给出指令执行步骤(不用包括取指)。
(3)给出每一个执行步骤的控制信号(上面一行写注释,下面一行写编码)。
(4)写出指令的逻辑表达式,编译、生成熔丝文件,并下载到MACH芯片中。
(5)通过手拨指令验证(2)中控制信号是否正确。
(6)编写汇编程序段验证指令的控制是否确性。
实验内容(以下每组指令中,至少实现一条。)
1. 请设计下列A组指令,编码可以采用A组基本指令中未使用的编码,如:
0000 1100~0000 1111;0100 0000、0100 0010、0100 0011等。
(1)ADC DR,SR 功能:带进位加,SR+DR+C→DR
指令汇编语句:ADC DR,SR
指令完整格式DRSR
操作码的编码操作数:DR ,SR
每一个执行步骤的控制信号(不用包括取指):
节拍 指令编码 MRW I8~6 I5~3 I2~0 B口 A口 SCI SST SSH DC2 DC1 0011 ADC DR,SRDRSR 无访问 F→B,
F→Y + AB DR编号 SR编号 C 更新标志 无移位 无特殊接收 无来源要求 SR+DR+C→DR 100 011 000 001 DR SR 10 001 00 000 000
在原来的.abl文件中的对应位置添加如下的逻辑表达式:
ADC = (IR==[0,0,0,0,1,1,0,0]);
SCi1 #(T==[0,0,1,1])(ADC)
A3 #(T==[0,0,1,1])(ADC)IR3
A2 #(T==[0,0,1,1])(ADC)IR2
A1 #(T==[0,0,1,1])(ADC)IR1
A0 #(T==[0,0,1,1])(ADC)IR0
B3 #(T==[0,0,1,1])(ADC)IR7
B2 #(T==[0,0,1,1])(ADC)IR6
B1 #(T==[0,0,1,1])(ADC)IR5
B0 #(T==[0,0,1,1])(ADC)IR4
I7 #(T==[0,0,1,1])(ADC)
SST0 #(T==[0,0,1,1])(ADC)
编译.abl文件,生成.jed文件,将.jed文件下载到MACH芯片中。
测试案例:
案例中,R0和R1用ADD指令相加后得到最高进位1,在R2和R3用ADC来相加时,会将进位1一起加进去,所以最后R2的值才会为1358。这说明所设计的指令达到了要求。
(2)NOT DR 功能:取反,/DR→DR
指令汇编语句:NOT DR
指令完整格式DR0000
操作码的编码操作数:DR
每一个执行步骤的控制信号(不用包括取指):
节拍 指令编码 MRW I8~6 I5~3 I2~0 B口 A口 SCI SST SSH DC2 DC1 0011 NOT DRDR0000 无访问 F→B,
F→Y R-S 0B DR编号 没用 0 更新标志 无移位 无特殊接收 无来源要求 /DR→
DR 100 011 010 011 DR 0000 00 001 00 000 000
在原来的.abl文件中的对应位置添加如下的逻辑表达式:
NOT = (IR==[0,0,0,0,1,1,0,1]);
B3 #(T==[0,0,1,1])(NOT)IR7
B2 #(T==[0,0,1,1])(NOT)IR7
B1 #(T==[0,0,1,1])(NOT)IR7
B0 #(T==[0,0,1,1])(NOT)IR7
I7 #(T==[0,0,1,1])(NOT)
I4 #(T==[0,0,1,1])(NOT)
I1 #(T==[0,0,1,1])(NOT)
SST0 #(T==[0,0,1,1])(NOT)
编译.abl文件,生成.jed文件,将.jed文件下载到MACH芯片中。
测试案例:
案例中,先赋给R0的值为1234 H,然后用设计的NOT指令对R0进行操作,即对R0取反。结果中R0的值为EDCB H,该结果就是1234 H的反码。这说明所设计的指令达到了要求。
2. 请设计下列指令
(1)寄存器加内存单元,结果写
显示全部