合肥工业大学计算机组成原理实验报告
试验一 基本运算器试验 一、试验目的 了解运算器的组成结构;驾驭运算器的工作原理。 二、试验内容 1、连线说明: ALU单元:S0S3(JP18) —— 开关区单元:K20K23(JP89) ALU单元:Wa、wB、rALU、CN_I(JP19) —— 开关区单元:K15K12(JP92) ALU单元:ALU_D0ALU_D7(JP25) —— 扩展区单元:JP62 ALU单元:IN0IN7(JP22) —— 开关区单元:K0K7(JP97) 2、打开试验仪电源,按CON单元的nRST按键,将ALU的A、B、FC、FZ、FS、I清零;假如C键上方指示灯不亮,请按一次C键,点亮指示灯,表示试验仪在运行状态。 3、给暂存器A赋初值 (1)拨动开关区单元的K7K0开关,形成二进制数01011000(或其它值);指示灯亮,表示该位是‘1’,灭为‘0’。 (2)拨动开关区单元K15(wA)、K14(wB)、K13(rALU)、K12(CN_I)开关,赋wA=0(允许写A)、wB=1(禁止写B)、rALU=1(不允许ALU输出)、CN_I=0,按CON单元的STEP按键一次,产生一个T1的下降沿,将二进制数01011000写入暂存器A中,ALU单元的A_7…A_0LED上显示A中的值 4、给暂存器B赋初值 (1)拨动开关区单元的K7K0开关,形成二进制数10101011(或其它值)。 (2)赋wA=1(禁止写A)、wB=0(允许写B)、rALU=1(不允许ALU输出)、CN_I=0,按CON单元的STEP按键一次,产生一个T2的下降沿,将二进制数10101011写入暂存器B中,ALU单元的R_7…R_0LED上显示B中的值 5、赋wA=1(禁止写A)、wB=1(禁止写B)、rALU(K10)=0,按uSTEP键,进入T3节拍, 节拍 DS169 DS168 T1、T2、T3无效 (T1=0、T2=0、T3=0) 0 0 T1 (T1=1、T2=0、T3=0) 0 1 T2 (T1=0、T2=1、T3=0) 1 0 T3 (T1=0、T2=0、T3=1) 1 1 说明:1-亮;0-灭 当rALU(K13)=0,假如S3S2S1S0的值是0000时,T2、T3节拍时,允许ALU结果输出;S3S2S1S0的值是其它数值,T3节拍时,允许ALU结果输出,显示于扩展区的二位数码管、DS94DS101的LED上。 6、依据后边的“运算结果表”,变更K20(S0)、K21(S1)、K22(S2)、K23(S3)、K12(CN_I)的值,视察并记录运算器的输出。例如:S0=0,S1=0,S2=0,S3=0,ALU的D7_D0 = 58H;FC、FZ、FS、I不变。 留意:只有按CON单元的STEP按键一次,产生一个T3的下降沿,ALU才将标记位FC、FZ、FS、I写入标记寄存器PSW中,才能在ALU单元的FZ、FC、FS、I指示灯上看到结果。 假如试验仪、PC联机操作,则可通过软件中的数据通路图来观测试验结果,方法是:打开软件,在星研软件的工具条中选择“运算器试验”,打开运算器试验的数据通路图。 进行上面的手动操作,点击工具条上单节拍或单周期吩咐图标,数据通路图会反映当前运算器所做的操作。 三、试验结果及分析 运算结果表 运算类型 A B S3 S2 S1 S0 CN_I 结果 逻辑运算 58 AB 0000 0 ALU=(58) FC=(0 )FZ=(0 ) FS=(0 ) 58 AB 0000 1 ALU=(AB) FC=(0 )FZ=( 0) FS=(0 ) 58 AB 0001 X ALU=(FB) FC=( 0)FZ=(0 ) FS=(0 ) 0010 X ALU=(08 ) FC=( 0)FZ=(0 ) FS=(0 ) 0011 X ALU=(F3 ) FC=( 0)FZ=(0 ) FS=(0 ) 0100 X ALU=( A7 ) FC=(0 )FZ=(0 ) FS=( 0) 移位运算 0101 0 ALU=( 0B ) FC=(0 )FZ=( 0) FS=( 0) 0101 1 ALU=( 2C ) FC=(0 )FZ=( 0) FS=(0 ) 0110 0 ALU=( 2C) FC=( 0)FZ=( 0) FS=(0 ) 0110(FC=0) 1 ALU=(2C ) FC=(0 )FZ=( 0) FS=( 0) 0110(FC=1) ALU=(AC ) FC=( 0)FZ=( 0) FS=(0 ) 0111 0 ALU=( B0 ) FC=( 1)FZ=( 0) FS=(0 ) 0111(FC=0) 1 ALU=( B0 ) FC=(0)FZ=(0) FS=(0) 0111(FC=1) ALU=( B1 ) FC=( 1)FZ=(0) FS=(0) 算术运算 1000 0 ALU=( 03 ) FC=(0)FZ=(0) FS=(0) 1000(FC=0) 1 ALU=( 03 ) FC=(0)FZ=(0) FS=(0) 1000(FC=1) ALU=( 04 ) FC=(1 )FZ=(0) FS=(0) 1001 0 ALU=( AD ) FC=(0)FZ=(0) FS=(0) 1001(FC=0) 1 ALU=( AD ) FC=(0)FZ=(0) FS=(0) 1001(FC=1) ALU=( AC ) FC=( 1)FZ=(0) FS=(0) 1010 0 ALU=( 59 ) FC=( 1)FZ=(0) FS=(0) 1 ALU=( 58 ) FC=( 1)FZ=(0) FS=(0) 1011 X ALU=( 57 ) FC=(1 )FZ=(0) FS=(0) 其它 1100 X FC=(1 ) 1101 X EI=( 0) 四、思索题 1.本试验系统中A寄存器的写入在什么时刻进行?B寄存器的写入在什么时刻进行? 能否在一个机器周期内将A、B寄存器写入不同的数据? 答: ①按住STEP,CK由高变低,寄存器A的黄色灯亮,表明选择A寄存器。放开STEP,CK由低变高,产生上升沿,数据55H被写入A寄存器。 ②按住STEP,CK由高变低,寄存器B 的黄色灯亮,表明选择B寄存器。放开STEP ,CK 由低变高,产生上升沿,数据33H 被写入B 寄存器。 ③不允许在一个机器周期内将A、B寄存器写入不同的数据。 2.本试验系统中ALU的求补功能与8086CPU的求补指令功能是否相同? 答: 本试验系统中ALU可对8位位变量进行逻辑“AND”、“OR”、“XO