《组成原理实验报告-基于复杂模型机两个8位二进制数乘法的实现(共10页).doc》由会员分享,可在线阅读,更多相关《组成原理实验报告-基于复杂模型机两个8位二进制数乘法的实现(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上评语:课中检查完成的题号及题数: 课后完成的题号与题数:成绩:指导教师:实验报告实验名称:基于复杂模型机两个8位二进制数乘法的实现日期:2011/1/10班级:学号:姓名:一、实验目的:1.综合应用所学的计算机组成原理知识,设计并实现较为完整的计算机;2.深入了解指令系统并会设计简单的指令;3.学会编写机器程序。二、实验内容:1.按照书上给出的接线图和机器程序验证其正确性;2.了解该机器程序的执行过程和原理;3.通过编写程序实现两个8位二进制乘法运算。 三、项目要求及分析: 项目要求编程实现两个8位二进制数乘法,故可沿袭前面验证试验的接线。8位二进制数乘法运算结果为1
2、6位,而寄存器是8位的,所以应分为高八位和低八位。我们组采用的是比较普遍的运算方法,即判断最低位为1或0,若为0,部分积不变;若为1,则部分积加上乘数左移了n次的结果得到新的部分积。(n为被乘数当前1所在的位数) 四、具体实现: 1. 画出算法流程图 2. 根据算法实现,若需修改指令系统,画出修改后的微程序流程图 实验修改了两条指令,其他与指导书上一致。修改的指令如下:3编写微程序 $M 00 ; NOP $M 01 006D43 ; PC-AR, PC加1 $M 03 ; MEM-IR, P $M 04 ; RS-B $M 05 04B201 ; A加B-RD $M 06 ; RS-B $M
3、 07 ; A与B-RD $M 08 ; MEM-AR $M 09 ; IO-RD $M 0A ; MEM-AR $M 0B ; NOP $M 0C ; MEM-RD $M 0D ; RD-MEM $M 0E ; A-PC $M 0F 0000CB ; NOP, P $M 10 ; RS-IO $M 11 ; MEM-RD $M 12 06B201 ; A加1-RD $M 13 ; RS-B $M 14 ; A左移B位(低3位)-RD $M 15 ; RS-B $M 16 01B201 ; A或B-RD $M 17 ; RS-B $M 18 02B201 ; A右移B位-RD $M 1B ;
4、A-PC $M 1C 10101D ; MEM-A $M 1D 10608C ; MEM-AR, P $M 1E 10601F ; MEM-AR $M 1F ; MEM-A $M 20 10608C ; MEM-AR, P $M 28 ; MEM-A $M 29 00282A ; RI-B $M 2A 04E22B ; A加B-AR $M 2B 04928C ; A加B-A, P $M 2C 10102D ; MEM-A $M 2D 002C2E ; PC-B $M 2E 04E22F ; A加B-AR $M 2F 04928C ; A加B-A, P $M 30 ; RD-A $M 31 ;
5、RD-A $M 32 006D48 ; PC-AR, PC加1 $M 33 006D4A ; PC-AR, PC加1 $M 34 ; RS-RD $M 35 ; NOP $M 36 006D51 ; PC-AR, PC加1 $M 37 ; RD-A $M 38 ; RD-A $M 39 ; RD-A $M 3A ; RD-A $M 3B ; RD-A $M 3C 006D5C ; PC-AR, PC加1 $M 3D 006D5E ; PC-AR, PC加1 $M 3E 006D68 ; PC-AR, PC加1 $M 3F 006D6C ; PC-AR, PC加14. 编写机器指令验证 $P 0
6、0 61 ; LDI R1,28H $P 01 01 ; 被乘数是83 $P 02 62 ; LDI R2,56H $P 03 01 ; 乘数是33 $P 04 D1 ; R1-MEM A0H 单元 $P 05 A0 ; $P 04 D2 ; R2-MEM B0H 单元 $P 05 B0 ; $P 06 60 ; LDI R0,00H $P 07 00 ; $P 08 D0 ; R0-MEM A1H 单元 $P 09 A1 ; $P 0A D0 ; R0-MEM A0H 单元 $P 0B A0 ; $P 0C 63 ; LDI R3,FFH $P 0D FF ; $P 0E 1E ; AND
7、R2,R3 R2判断是不是0 $P 0F F0 ; FZ=1,跳到 输出结果并停机 $P 10 1E ; $P 11 63 ; LDI R3,01H $P 12 00 ; $P 13 AE ; SHR R2,R3 右移0位 $P 14 F0 ; FC为1,跳到60 $P 15 60 ; $P 16 D2 ; R2-MEM B0H单元 $P 17 B0 ; $P 18 63 ; $P 19 00 ; $P 1A 8D ; SHL R1,R3 左移0位 $P 1B 8C ; SHL R0,R3 左移0位 $P 1C E0 ; $P 1D 80 ; ;输出 $P 1E C2 ; MEM-R2 A0H
8、 单元 部分积低位 $P 1F A0 ; $P 20 C3 ; MEM-R3 A1H 单元 部分积高位 $P 21 A1 ; $P 22 50 ; 停机 $P 60 D2 ; R2-MEM B0H 单元 $P 61 B0 ; $P 62 C2 ; MEM-R2 A0H 单元 部分积低位 $P 63 A0 ; $P 64 C3 ; MEM-R3 A1H 单元 部分积高位 $P 65 A1 ; $P 66 06 ; ADD R2,R1 $P 67 F0 ; FC为1,跳到70 $P 68 74 ; $P 69 03 ; ADD R3,R0 $P 6A D3 ; R3-MEM A1H 单元 $P 6
9、B A1 ; $P 6C D2 ; R2-MEM A0H 单元 $P 6D A0 ; $P 6E 63 ; $P 6F 00 ; $P 70 8D ; SHL R1,R3 左移0位 $P 71 8C ; SHL R0,R3 左移0位 $P 72 E0 ; JMP LOOP $P 73 80 ; $P 74 03 ; ADD R3,R0 $P 75 73 ; R3+1-R3 $P 76 D3 ; R3-MEM A1H 单元 $P 77 A1 ; $P 78 D2 ; R2-MEM A0H 单元 $P 79 A0 ; $P 7A 63 ; $P 7B 00 ; $P 7C 8D ; SHL R1,
10、R3 左移0位 $P 7D 8C ; SHL R0,R3 左移0位 $P 7E E0 ; JMP LOOP $P 7F 80 ; $P 80 63 ; LDI R3,FFH $P 81 FF ; $P 82 C2 ; MEM-R2 B0H 单元 $P 83 B0 ; $P 84 1E ; AND R2,R3 R2判断是不是0 $P 85 F0 ; FZ=1,跳到 停机 $P 86 1E ; $P 87 63 ; LDI R3,01H $P 88 00 ; $P 89 AE ; RR R2,R3 右移一位 $P 8A F0 ; FC为1,跳到60 $P 8B 60 ; $P 8C D2 ; R2
11、-MEM B0H 单元 $P 8D B0 ; $P 8E 63 ; $P 8F 00 ; $P 90 8D ; SHL R1,R3 左移0位 $P 91 BC ; SHL R0,R3 左移0位 $P 92 E0 ; $P 93 80 ;联机装入调试五、调试运行结果:、乘数是83H,被乘数是33H, 结果最后放在R3R2上是 1AH 19H: 、乘数FF,被乘数FE: 被乘数 跟FFH进行与,判断是否为0:结果:六、所遇问题及解决方法: 开始时对机器程序不太了解,对微指令与机器指令之间的运行不太明白,后来在同组成员和其他同学的帮助与讨论下明白了它们之间的联系和运行顺序。另外就是程序的编写由于细节太多,导致小错不断,在各种纠结之后终于一一找出并修改了。七、实验总结:1.复杂模型机的实现比较简单,就是微程序的编写比较繁琐;2.以后再遇到这种繁琐的程序,先仔细构思,画出流程图再编写,就不会那么容易出错了。3.复杂模型是对前面简单模型的升华,使我们更深入了解了机器程序的执行过程。 专心-专注-专业