您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 组成原理实验报告-基于复杂模型机两个8位二进制数乘法的实现
计算机组成原理实验报告1评语:课中检查完成的题号及题数:课后完成的题号与题数:成绩:指导教师:实验报告实验名称:基于复杂模型机两个8位二进制数乘法的实现日期:2011/1/10班级:学号:姓名:一、实验目的:1.综合应用所学的计算机组成原理知识,设计并实现较为完整的计算机;2.深入了解指令系统并会设计简单的指令;3.学会编写机器程序。二、实验内容:1.按照书上给出的接线图和机器程序验证其正确性;2.了解该机器程序的执行过程和原理;3.通过编写程序实现两个8位二进制乘法运算。三、项目要求及分析:项目要求编程实现两个8位二进制数乘法,故可沿袭前面验证试验的接线。8位二进制数乘法运算结果为16位,而寄存器是8位的,所以应分为高八位和低八位。我们组采用的是比较普遍的运算方法,即判断最低位为1或0,若为0,部分积不变;若为1,则部分积加上乘数左移了n次的结果得到新的部分积。(n为被乘数当前1所在的位数)四、具体实现:1.画出算法流程图计算机组成原理实验报告2乘数-R1开始被乘数-R2R1存A0H单元的MEMR2存B0H单元的MEM给R0送00H把R0存A0H单元的MEM(放部分积的低位,现在是置0)把R0存A1H单元的MEM(放部分积的高位,现在是置0)给R3送FFH,并和R2与被乘数=0?给R3送00H,并使R2右移0位N判断CF=1?把R2存B0H单元的MEMN给R3送00HSHLR1,R3R1左移0位SHLR0,R3R0左移0位把R2存B0H单元的MEM把A0H单元的MEM送R2把A1H单元的MEM送R3R1+R2-R2低位加判断CF=1?R0+R3-R3高位加N把R2存A0H单元的MEM把R3存A1H单元的MEMR3+1-R3高位加1有进位R0+R3-R3高位加把R3存A1H单元的MEM把R2存A0H单元的MEMYY给R3送FFH把B0H单元的MEM送R2R2和R3运行与运算被乘数=0?给R3送00H,并使R2右移0位SHLR1,R3R1左移0位SHLR0,R3R0左移0位输出结果停机结束YYN判断CF=1?把R2存B0H单元的MEMNY计算机组成原理实验报告32.根据算法实现,若需修改指令系统,画出修改后的微程序流程图实验修改了两条指令,其他与指导书上一致。修改的指令如下:3.编写微程序$M00000001;NOP$M01006D43;PC-AR,PC加1$M03107070;MEM-IR,P1$M04002405;RS-B$M0504B201;A加B-RD$M06002407;RS-B$M07013201;A与B-RD$M08106009;MEM-AR$M09183001;IO-RD$M0A106010;MEM-AR$M0B000001;NOP$M0C103001;MEM-RD$M0D200601;RD-MEM$M0E005341;A-PC$M0F0000CB;NOP,P3$M10280401;RS-IO$M11103001;MEM-RD$M1206B201;A加1-RD$M13002414;RS-B$M14033201;A左移B位(低3位)-RD计算机组成原理实验报告4$M15002416;RS-B$M1601B201;A或B-RD$M17002418;RS-B$M1802B201;A右移B位-RD$M1B005341;A-PC$M1C10101D;MEM-A$M1D10608C;MEM-AR,P2$M1E10601F;MEM-AR$M1F101020;MEM-A$M2010608C;MEM-AR,P2$M28101029;MEM-A$M2900282A;RI-B$M2A04E22B;A加B-AR$M2B04928C;A加B-A,P2$M2C10102D;MEM-A$M2D002C2E;PC-B$M2E04E22F;A加B-AR$M2F04928C;A加B-A,P2$M30001604;RD-A$M31001606;RD-A$M32006D48;PC-AR,PC加1$M33006D4A;PC-AR,PC加1$M34003401;RS-RD$M35000035;NOP$M36006D51;PC-AR,PC加1$M37001612;RD-A$M38001613;RD-A$M39001615;RD-A$M3A001617;RD-A$M3B001613;RD-A$M3C006D5C;PC-AR,PC加1$M3D006D5E;PC-AR,PC加1$M3E006D68;PC-AR,PC加1$M3F006D6C;PC-AR,PC加14.编写机器指令验证$P0061;LDIR1,28H$P0101;被乘数是83$P0262;LDIR2,56H$P0301;乘数是33$P04D1;R1-MEMA0H单元$P05A0;$P04D2;R2-MEMB0H单元$P05B0;$P0660;LDIR0,00H计算机组成原理实验报告5$P0700;$P08D0;R0-MEMA1H单元$P09A1;$P0AD0;R0-MEMA0H单元$P0BA0;$P0C63;LDIR3,FFH$P0DFF;$P0E1E;ANDR2,R3R2判断是不是0$P0FF0;FZ=1,跳到输出结果并停机$P101E;$P1163;LDIR3,01H$P1200;$P13AE;SHRR2,R3右移0位$P14F0;FC为1,跳到60$P1560;$P16D2;R2-MEMB0H单元$P17B0;$P1863;$P1900;$P1A8D;SHLR1,R3左移0位$P1B8C;SHLR0,R3左移0位$P1CE0;$P1D80;;输出$P1EC2;MEM-R2A0H单元部分积低位$P1FA0;$P20C3;MEM-R3A1H单元部分积高位$P21A1;$P2250;停机$P60D2;R2-MEMB0H单元$P61B0;$P62C2;MEM-R2A0H单元部分积低位$P63A0;$P64C3;MEM-R3A1H单元部分积高位$P65A1;$P6606;ADDR2,R1$P67F0;FC为1,跳到70$P6874;$P6903;ADDR3,R0$P6AD3;R3-MEMA1H单元$P6BA1;$P6CD2;R2-MEMA0H单元计算机组成原理实验报告6$P6DA0;$P6E63;$P6F00;$P708D;SHLR1,R3左移0位$P718C;SHLR0,R3左移0位$P72E0;JMPLOOP$P7380;$P7403;ADDR3,R0$P7573;R3+1-R3$P76D3;R3-MEMA1H单元$P77A1;$P78D2;R2-MEMA0H单元$P79A0;$P7A63;$P7B00;$P7C8D;SHLR1,R3左移0位$P7D8C;SHLR0,R3左移0位$P7EE0;JMPLOOP$P7F80;$P8063;LDIR3,FFH$P81FF;$P82C2;MEM-R2B0H单元$P83B0;$P841E;ANDR2,R3R2判断是不是0$P85F0;FZ=1,跳到停机$P861E;$P8763;LDIR3,01H$P8800;$P89AE;RRR2,R3右移一位$P8AF0;FC为1,跳到60$P8B60;$P8CD2;R2-MEMB0H单元$P8DB0;$P8E63;$P8F00;$P908D;SHLR1,R3左移0位$P91BC;SHLR0,R3左移0位$P92E0;$P9380;联机装入调试计算机组成原理实验报告7五、调试运行结果:①、乘数是83H,被乘数是33H,结果最后放在R3R2上是1AH19H:②、乘数FF,被乘数FE:被乘数跟FFH进行与,判断是否为0:结果:计算机组成原理实验报告8六、所遇问题及解决方法:开始时对机器程序不太了解,对微指令与机器指令之间的运行不太明白,后来在同组成员和其他同学的帮助与讨论下明白了它们之间的联系和运行顺序。另外就是程序的编写由于细节太多,导致小错不断,在各种纠结之后终于一一找出并修改了。七、实验总结:1.复杂模型机的实现比较简单,就是微程序的编写比较繁琐;2.以后再遇到这种繁琐的程序,先仔细构思,画出流程图再编写,就不会那么容易出错了。。。。3.复杂模型是对前面简单模型的升华,使我们更深入了解了机器程序的执行过程。
本文标题:组成原理实验报告-基于复杂模型机两个8位二进制数乘法的实现
链接地址:https://www.777doc.com/doc-5834929 .html