脱机运算器实验报告理论课教师姓名:李济生实验指导教师:刘万成组号:19姓名:刘璐学号:14281063实验目的:(1)了解脱机操作下AM2901运算器的功能与控制信号的使用,了解运算器AM2901的内部结构及工作时序,观察运算器运算的结果对状态标志的影响。(2)深入了解AM2901运算器的功能与具体用法,掌握用AM2901完成各种运算操作时各控制信号的使用,观察指令执行的结果对状态标志的影响;了解4片AM2901的级联方式,深化运算器部件的组成、设计、控制与使用等诸项知识。实验内容:1.将教学机左下方的5个拨动开关置为1XXOO(单步、16位、脱机);先按一下“RESET”按键,再按一下“START”按键,进行初始化。2.接下来,按下表所列的操作在机器上进行运算器脱机实验,将结果填入表中:其中D1取为0101H,D2取为1010H;通过两个12位的红色微型开关向运算器提供控制信号,通过16位数据开关向运算器提供数据,通过指示灯观察运算结果及状态标志。运算器实验(1)运算I8-I0SSTSSHSCIB口A口压START前压START后ALU输出CZVSALU输出CZVS*D1+0-R00110001110010000000不用0101随机01010000*D2+0-R10110001110010000001不用1010000010100000R0+R1-R0011000001001000000000011111000021211000RO-R1-R00110010010010010000000101010000F0F11000R1-R0-R1011001001001001000100000F0F10000E0E1000R0∨R1-R1011011001001000000100000F0F10000F0F1010R0∧R1-R0011100001001000000000010101101001011010R0≮R1-R0011110001001000000000010E0E101001011000┘(R0≮R1)-R001111100100100000000001FEFE10000E0E1001R0逻辑左移1110000111101000000不用FEFE1001FDFC1001R0逻辑右移1010000111011000000不用FDFC10017EFE0001实验结果分析(选择2个操作运算进行控制信号取值和运算结果值的进行分析):(1)R0+R1-R0011000001001000000000011111000021211000分析:此指令要完成的目的为对R0+R1进行运算后将值赋给R0。B口对应R0,且地址为0000;A口对应R1,且地址为0001。数据来源为A和B,I2-I0为:001;运算是+,I3-I5为:000;最后的值存储到B口对应的地址并输出,所以I8-I6所选值为011;该式接受ALU的标志位输出的值,所以SST所选值为001;该式执行的加(ADD),所以SSHSCI所选值为000。因为R0=0101,R1=1010,所以按START前ALU的输出值为1111,故输出值为1111。(2)R0逻辑左移1110000111101000000不用FEFE1001FDFC1001分析:此指令要完成的目的为对R0进行逻辑左移。B口对应R0,且地址为0000;只有R0一个值A口不用。数据来源为B,I2-I0为:011;I3-I5取加法:000;最后的值存储到B口对应的地址并输出,所以I8-I6所选值为111;左移操作,另三个标志不变,所以SST所选值为110;SSHSCI用于逻辑移位指令,所选值为000。因为R0=FEFE,实现逻辑左移后补0,所以按START之前R0为FEFE,按START后R0变为FDFC。运算器实验(2)实验步骤:将教学机左下方的5个拨动开关置为1XX00(单步、16位、脱机);先按一下“RESET”按键,再按一下“START”按键,进行初始化。接下来,按下表所列的操作在机器上进行运算器脱机实验,将结果填入表中:执行操作I8I7I6I5I4I3I2I1I0SSTSSHSCIB口A口按START前按START后ALUCZVSALUCZVSFFFF→R00110001110010000000不用FFFF0001FFFF0001FFFF→R10110001110010000001不用FFFF0001FFFF0001R1+R0→R101100000100100000010000FFFE0001FFFD1001FFFF→R10110001110010000001不用FFFF1000FFFF00010001→R20110001110010000010不用0001000100010000R1-R2→R201101000100100100100001FFFE0000000110010001→R80110001110010001000不用0001100100010000R8+1→R80110000110010011000不用00020000000300001234→R50110001110010000101不用1234000012340000R5→YR5+1→R5010000100001001010101011234000012350000DDDD→R60110001110010000110不用DDDD0000DDDD00017777→R70110001110010000111不用7777000177770000R6-R7→R60110010010010010110011166660000EEEF1010R6逻辑右移1010000111011000110不用6666101033330010R7→Q0000000110010000111不用7777001077770000R7与Q的联合右移1000000111111100111不用777700003BBB1000实验结果分析(选择2个操作运算进行控制信号取值和运算结果值的进行分析):(1)FFFF→R00110001110010000000不用FFFF0001FFFF0001分析:此指令要完成的目的是将FFFF赋给R0。B口对应R0,且地址为0000;只有R0一个值A口不用。数据来源为D,I2-I0为:111;I3-I5取加法即加0:000;最后的值存储到B口对应的地址并输出,所以I8-I6所选值为011;接受ALU的标志位输出的值,所以SST选001;SSHSCI相当加法,所选值为000。因为将FFFF赋值给R0,输出为FFFF。(2)R7→Q0000000110010000111不用7777001077770000分析:此指令要完成的目的是将R7放入Q寄存器。B口对应R7,且地址为0111;只有R7一个值A口不用。数据来源为B,I2-I0为:011;I3-I5取加法即加0:000;最后的值放入Q寄存器并输出,所以I8-I6所选值为000;接受ALU的标志位输出的值,所以SST选001;SSHSCI相当加法,所选值为000。因为R7为7777,输出为7777。思考题:分析R1-R2→R2和R6-R7→R6的结果,并说明操作控制的区别。1)R1-R2→R201101000100100100100001FFFE000000011001分析:此指令要完成的目的为对R1-R2进行运算后将值赋给R2。B口对应R2,且地址为0010;A口对应R1,且地址为0001。数据来源为A和B,I2-I0为:001;运算是R-S,I3-I5为:010;最后的值存储到B口对应的地址并输出,所以I8-I6所选值为011;该式接受ALU的标志位输出的值,所以SST所选值为001;该式执行的加(SUB),所以SSHSCI所选值为001。因为R1=FFFF,R1=0001,所以按START前ALU的输出值为FFFE。2)R6-R7→R60110010010010010110011166660000EEEF1010分析:此指令要完成的目的为对R6-R7进行运算后将值赋给R6。B口对应R2,且地址为0110;A口对应R1,且地址为0111。因为最后的值存储到B口多对应的地址并输出,所以I8-I6所选值为011;运算是S-R,I3-I5为:001;数据来源是A和B,所以I2-I0所选值为001。该式接受ALU的标志位输出的值,所以SST所选值为001;该式执行的减(SUB),所以SSHSCI所选值为001。因为R6=DDDD,R7=7777,所以按START前ALU的输出值为6666,故输出值为6666。3)区别:R1-R2→R2的是R-S,所以I5-I3所选值为010,R6-R7→R6的是S-R,所以I5-I3所选值为001。分析R8+1→R8与R5→Y同时R5+1→R5的结果,并说明操作控制的区别。1)R8+1→R80110000110010011000不用0002000000030000分析:此指令要完成的目的是R8自加1,存储到B口多对应的地址并输出。B口对应R8,且地址为1000;只有R8一个值A口不用。数据来源为B,I2-I0为:011;I3-I5取加法即加0:000;最后的值存储到B口对应的地址并输出,所以I8-I6所选值为011;接受ALU的标志位输出的值,所以SST选001;SSHSCI自加1(INC),所以SSHSCI所选值为001。因为R8=0001,所以按START前ALU的输出值为0002,故输出值为0002。2)R5→Y同时R5+1→R5R5→YR5+1→R5010000100001001010101011234000012350000分析:此指令是将R5输出并R5+1存在R5中,因为有两个值,所以A口和B口都有值。R5地址是0101对应的是A口和B口。数据来源是B,所以I2-I0所选值为011;该式实现的自加1运算,所以I5-I3所选值为000;因为最后的值存储到B口对应的地址并输出R5,所以I8-I6所选值为010;该式接受ALU的标志位输出的值,所以SST所选值为001;该式执行的自加1(INC),所以SSHSCI所选值为001。因为R5=1234,所以按START前ALU的输出值为1234,故输出值为1234。区别:R8+1→R8输出的是B口数据,所以I8-I6所选值为011。R5→Y同时R5+1→R5输出的是A口数据,所以I8-I6所选值为010。注:1、每个同学要独立完成一份电子版实验报告;2、实验报告文件命名为:李老师班--运算器实验报告--学生姓名--学号3、请在下次实验课前交到刘万成老师的邮箱:1792742986@qq.com