复杂模型机实验报告.docx
- 文档编号:11269111
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:12
- 大小:61.92KB
复杂模型机实验报告.docx
《复杂模型机实验报告.docx》由会员分享,可在线阅读,更多相关《复杂模型机实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
复杂模型机实验报告
评语:
课中检查完成的题号及题数:
课后完成的题号与题数:
成绩:
自评分:
92
实验报告
实验名称:
基于复杂模型机两个8位二进制数乘法的实现
日期:
2012/1/9
班级:
学号:
姓名:
班级:
学号:
姓名:
一、实验目的:
1.
综合运用所学计算机组成原理知识,设计并实现较为完整的计算机
2.
锻炼动手能力,实践排错能力
3.
进一步理解计算机运行的原理以及微指令架构
二、实验内容:
1.
根据实验指导书提供的复杂模型机电路图连接电路,并校验电路
2.
装载示例程序并运行,分析理解所增加的微指令
3.
根据复杂模型机现有条件设计两个8位二进制相乘的程序
三、项目要求及分析:
实验内容1、2
按照实验指导书进行,略。
实验内容3
分析:
要求利用复杂模型机现有的指令系统以及硬件电路设计一段实现八位二进制数相乘的程序。
因为乘法在计算机中有多种算法实现,包括整数乘、小数乘、原码乘、补码乘等等,因为此次实验并不要求给出一个完整的实用乘法程序段,故实验程序只实现两个八位二进制整数无符号相乘运算。
采用算法如下:
乘数AA7A6A5A4A3A2A1A0
被乘数B
乘积C=B·A0+2(B·A1+2(B·A2+……2·B·A7))))))
其中Ai为0或者1,在机器中使用原码表示2*X是使X左移1位。
若不采用循环模式而是直接使用指令将该算法的乘积等式直接表示出来,需要A,B,RL(结果低位),RH(结果高位)四个通用寄存器;而若使用循环模式,则需要除A、B、RL、RH外的CX(控制循环次数以及高低位相与寄存器)和AD(取中间结果高低位)的辅助。
此次实验为了充分的接触指令系统,采用循环模式。
由于复杂模型机中只有R0、R1、R2、R3四个通用寄存器,故一些原来计划使用的寄存器改为使用主存。
另外,因为低位结果相加可能进位,所以修改原微指令ADD为带进位加法。
四、具体实现:
1.画出算法流程图
说明:
该流程图使用了以下6个寄存器CX,AD,A,B,RL,RH;
其中CX作为计数以及辅助生成AD的,CX变化为
10000000初始值
00000001
00000010
……
10000000程序结束
AD作为被乘数的高低位划分数据,其中被乘数B中高位对应的AD的位置1,低位置0:
00000000初始值
00000001CXORAD->AD
00000011
……
11111111
另流程图中所用6个寄存器在实现中使用MEM代替,CX,AD,A,B使用R2作RL,R3作RH。
左移1位等价右移7位
2.根据算法实现,若需修改指令系统,画出修改后的微程序流程图
需修改一条微指令即A+B->RD修改为进位加法,因流程图大体不变所以微程序流程图略
3.编写微程序
两个8位二进制数的乘法运算程序如下:
;机器指令
$P0020;INPUTTOR0
$P0100
$P0222;INPUTTOR2
$P0300
$P0461;SETR1TO00
$P0500
$P0663;SETR3TO00
$P0700
$P0863;SETR3TOF8
$P09F8
$P0AD3;STORER3TO80ASATAG
$P0B80
;循环主体
$P0C63;SETR3TO01
$P0D01
$P0E1B;ANDR2,R3
$P0FF0;BZCTO12
$P1012
$P1101;ADDR0,R1
$P1263;SETR3TO01
$P1301
$P14AD;RRR3,R1
$P15AE;RRR3,R2
$P1663;SETR3TO7F
$P177F
$P181E;ANDR3,R2
$P1963;SETR3TO80
$P1A80
$P1B17;ANDR1,R3
$P1C9E;ORR3,R2
$P1D63;SETR3TO01
$P1E01
$P1FAF;RRR3,R3JUSTTOMAKEFZNOTEQUALONETHENBZCDEPENDSONFC
$P20F0;BZCTO40
$P2140
$P2263;SETR3TO7F
$P237F
$P241D;ANDR3,R1TOMAKETHEHBOFR1AS0
$P2563;SETR3TO01
$P2601
$P27AF;RRR3,R3JUSTTO...
$P28C3;LAD80TOR3
$P2980
$P2A73;R3++
$P2BF0;BZCTOTHEENDWHICHIS90
$P2C90
$P2DD3;STAR3TO80
$P2E80
$P2FE0;JMPTOTHEENTRANCEOFTHECYCLE
$P300C
;条件转移指令分支
$P4063;SETR3TO80
$P4180
$P429D;ORR3,R1TOMAKETHEHBOFR1AS1
$P43E0;JMPTO25
$P4425
;程序结尾
$P9034;OUTPUTR1
$P9140
$P9238;OUTPUTR2
$P9340
$P9450;STOP
;微指令
;//**StartOfMicroControllerData**//
$M00000001;NOP
$M01006D43;PC->AR,PC加1
$M03107070;MEM->IR,P<1>
$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,P<3>
$M10280401;RS->IO
$M11103001;MEM->RD
$M1206B201;A加1->RD
$M13002414;RS->B
$M1405B201;A减B->RD
$M15002416;RS->B
$M1601B201;A或B->RD
$M17002418;RS->B
$M18043201;A右环移->RD
$M1B005341;A->PC
$M1C10101D;MEM->A
$M1D10608C;MEM->AR,P<2>
$M1E10601F;MEM->AR
$M1F101020;MEM->A
$M2010608C;MEM->AR,P<2>
$M28101029;MEM->A
$M2900282A;RI->B
$M2A04E22B;A加B->AR
$M2B04928C;A加B->A,P<2>
$M2C10102D;MEM->A
$M2D002C2E;PC->B
$M2E04E22F;A加B->AR
$M2F04928C;A加B->A,P<2>
$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
$M3B000001;NOP
$M3C006D5C;PC->AR,PC加1
$M3D006D5E;PC->AR,PC加1
$M3E006D68;PC->AR,PC加1
$M3F006D6C;PC->AR,PC加1
;//**EndOfMicroControllerData**//
4.编写机器指令验证
;机器指令
$P0020;INPUTTOR0
$P0100
$P0222;INPUTTOR2
$P0300
$P0461;SETR1TO00
$P0500
$P0663;SETR3TO00
$P0700
$P0863;SETR3TOF8
$P09F8
$P0AD3;STORER3TO80ASATAG
$P0B80
;循环主体
$P0C63;SETR3TO01
$P0D01
$P0E1B;ANDR2,R3
$P0FF0;BZCTO12
$P1012
$P1101;ADDR0,R1
$P1263;SETR3TO01
$P1301
$P14AD;RRR3,R1
$P15AE;RRR3,R2
$P1663;SETR3TO7F
$P177F
$P181E;ANDR3,R2
$P1963;SETR3TO80
$P1A80
$P1B17;ANDR1,R3
$P1C9E;ORR3,R2
$P1D63;SETR3TO01
$P1E01
$P1FAF;RRR3,R3JUSTTOMAKEFZNOTEQUALONETHENBZCDEPENDSONFC
$P20F0;BZCTO40
$P2140
$P2263;SETR3TO7F
$P237F
$P241D;ANDR3,R1TOMAKETHEHBOFR1AS0
$P2563;SETR3TO01
$P2601
$P27AF;RRR3,R3JUSTTO...
$P28C3;LAD80TOR3
$P2980
$P2A73;R3++
$P2BF0;BZCTOTHEENDWHICHIS90
$P2C90
$P2DD3;STAR3TO80
$P2E80
$P2FE0;JMPTOTHEENTRANCEOFTHECYCLE
$P300C
;条件转移指令分支
$P4063;SETR3TO80
$P4180
$P429D;ORR3,R1TOMAKETHEHBOFR1AS1
$P43E0;JMPTO25
$P4425
;程序结尾
$P9034;OUTPUTR1
$P9140
$P9238;OUTPUTR2
$P9340
$P9450;STOP
联机装入调试
五、调试运行结果:
六、所遇问题及解决方法:
在编写机器指令之前,不了解新增加的微指令系统的各个功能会怎样影响FC,FZ位,
尤其是循环右移RR以及与AND功能。
导致不能直接使用BZC跳转命令,于是首先连线,并编写了几条简单的命令对功能进行验证,解决问题。
七、实验总结:
1.
经过实验,深层次的了解了微指令系统以及它存在的意义。
并且通过自我拓展,了解到了现在计算机底层所流行的技术以及有哪些公司正在做底层芯片,有哪些架构等等。
体会到了机器语言的速度之快以及变成之繁琐。
贯通了从电路到桌面应用这一系列体系知识。
2.
3.
感谢下载!
欢迎您的下载,资料仅供参考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复杂 模型 实验 报告