ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:399.43KB ,
资源ID:3267044      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3267044.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机组成原理实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机组成原理实验报告.docx

1、计算机组成原理实验报告评语: 课中检查完成的题号及题数: 课后完成的题号与题数: 成绩: 自评成绩:XX实验报告实验名称: CPU 与简单模型机设计实验 日期: 2016.XX.XX班级:1001XXXX 学号:2014XXXX 姓名:XX同组同学信息班级:1001XXXX 学号:2014XXXXX 姓名:XXXX 一、实验目的:1. 掌握一个简单CPU 的组成原理。2. 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机3. 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。二、实验内容:1. 修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相

2、加。增加存数,取数和减法三条机器指令,指令助记符分别为STA,LAD和SUB,指令操作码分别为60,70和80。2. 利用修改后的指令系统编写一段程序,完成16位二进制数的加减法运算。 三、项目要求及分析:1. 将加法指令的功能修改为R0的内容和某个存储单元的内容相加。原来的加法指令中的两个数相等且均来自R0寄存器,因此只需要在加法指令中增加取数操作,并将当前的操作数存入运算单元即可。具体的操作步骤如下:a) 将R0中的数据送ALU中的A;b) 给出另一个数在内存中的地址;c) 从内存中取出相应的数据并送ALU中的B;d) 进行加法运算并将结果送R0。存数指令的具体操作过程如下:a) 从IN读

3、入数据要存储的地址;b) 将地址送至AR; c) 从IN读入要存储的数据;d) 将数据送入内存中的相应存储单元。取数操作的具体操作过程如下:a) 从IN读入数据的存储地址; b) 将存储地址送至AR; c) 将取出的数据送至R0;减法指令的具体操作过程如下: a) 将被减数送至ALU的;b) 将减数送至ALU的;c) ALU进行减法操作,结果送R0;2. 实现16位二进制数的加减法运算只要利用以后的指令系统,编写相应的程序。可以先将两个十六位的二进制数的高八位和低八位分别存入不同的地址,然后先取出两个数低八位进行相加,送至OUT单元显示,进位进行存储;再进行两个数低八位相加,结果在数据总线出显

4、示。四、具体实现: 应包含以下内容:画出增加机器指令的微程序流程图、编制二进制代码表、编写微程序、编写机器指令验证程序。机器指令的微程序流程图如下:操作地址十六进制说明IN-R036183011从IN单元读入存储地址送至R0RO-AR11006412将R0中的存储地址送往ARIN-RO12183013从IN单元读入数据送至R0R0-MEM13200401把R0内容送往内存IN-R037183015从IN单元读入存储地址送往R0R0-AR15006416把R0中的存储地址送往ARMEM-RO16103001把内存中相应的数据送往R0R0-A30001417R0中的数据送入AIN-R0171830

5、18从IN单元读入存储地址送入R0R0-AR18006419R0中的存储地址送入ARMEM-B19102005内存中的数据送往BA+B-R005053201A+B结果送入R0RO-A3800142CR0中的数据送入AIN-R02C18302D从IN单元读取存储地址送至R0R0-AR2D00642ER0中的存储地址送入R0MEM-B2E10202F内存中相应数据送入BA-B-R02F05B201A-B的结果送入R0IN-R032183001从IN单元读取数据送入R0R0-OUT33280401把R0单元的值送入OUT显示PC-AR3C006D5DPC中的地址送入ARMEM-PC1D105141内

6、存中的指令地址送PC二进制代码表如下:地址十六进制高五位S3-S0A字段B字段C 字段MA5-MA00000 00 010000000000000000000000010100 6D 430000000001101101010000110310 70 700001000001110000011100000400 6D 460000000001101101010001100504 B2 010000010010110010000000011D10 51 410001000001010001010000013000 14 040000000000010100000001003218 30 0100

7、01100000110000000000013328 04 010010100000000100000000013500 00 350000000000000000001101013C00 6D 5D0000000001101101010111011020 04 010010000000000100000000013600 6D 500000000001101101010100003700 6D 510000000001101101010100011110 30 010001000000110000000000013800 14 120000000000010100000100101200 6

8、D 530000000001101101010100111310 20 140001000000100000000101001405 B2 010000010110110010000000010610 20 05000100000010000000000101将加法指令的功能修改为R0的内容和某个存储单元的内容相加程序代码如下:; /* Start Of Main Memory Data */ $P 00 20 ; START: IN R0 从IN单元读入数据送R0 $P 01 00 ; ADD R0,R0 R0和自身相加,结果送R0 $P 02 30 ; OUT R0 R0的值送OUT单元显

9、示 $P 03 80 ;SUB ro,mem $P 04 30 ; OUT R0 $P 05 60 ;sta $P 06 70 ;load $P 07 30 ;$P 04 E0 ;JMP START 跳转至00H地址 $P 08 50 ; HLT 停机; /* End Of Main Memory Data */; /* Start Of MicroController Data */ $M 00 000001 ; NOP $M 01 006D43 ; PC-AR,PC加1 $M 03 107070 ; MEM-IR, P $M 05 04B201 ; A加B-R0 $M 1D 105141

10、; MEM-PC $M 30 001417 ; R0-A $M 17 183018 ; in-r0 $M 18 006419 ; r0-ar $M 19 102005 ; mem-b $M 32 183001 ; IN-R0 $M 33 280401 ; R0-OUT $M 35 000035 ; NOP $M 3C 006D5D ; PC-AR,PC加1 $M 38 00142C ;r0-a $M 2C 18302D ;IN-r0 $M 2D 00642E ;r0-ar $M 2E 10202F ;mem-b $M 2F 05B201 ;a-b-r0 $M 36 183011 ;in-r0

11、$M 11 006412 ;r0-ar $M 12 183013 ;in-r0 $M 13 200401 ;r0-mem $M 37 183015 ;in-r0 $M 15 006416 ; r0-ar $M 16 103001 ;mem-r0以下的一段程序用于实现两个16位二进制数的加法,其思想为高位和低位分别对应相加,将低位的进位给高位,减法同理。结果的低八位在OUT单元显示,高八位数据在数据总线显示,最高位的进位忽略。代码如下:$P 00 60 ;STA 存加数的低八位$P 01 60 ;STA 存被加数的低八位 $P 02 60 ;STA 存加数的高八位 $P 03 60 ;STA 存

12、被加数的高八位$P 04 70 ;LDA 取出加数的低八位存入R0中 $P 05 00 ;ADD 两个数低八位相加$P 06 30 ;OUT 两个数低八位相加的结果在OUT单元显示 $P 07 70 ;LDA 取出加数的高八位存入R0中 $P 08 00 ;ADD 两个数的高八位相加 $P 09 50 ;HLT 停机五、调试运行结果: 从IN单元输入02,送入寄存器A,其对应的存储器单元里的地址数值为30,送入寄存器B,2+30=32加法结果:加法的结果32被送入寄存器A,从IN单元输入02,其对应的存储器单元里的地址数值为30,送入寄存器B,32-30=02,减法结果如下:完成十六位二进制数

13、的加减法运算加法:输入的两个数据分别为:01010010,11111111(52FF) 00110010,00000001(3201) 输出的结果为:10000101,00000000(8500) 减法:输入的两个数据分别为:01010110,11111111(56FF) 00110010,00000001(3201) 输出的结果为:001111111,11111110(3FFE)注:其中低八位在OUT单元显示,高八位在数据总线显示。 六、所遇问题及解决方法: 1.接线问题,由于线路复杂,一不小心接错了一根线,运行时,OUT单元总是没有显示,在用软件模拟时,单步执行,每次数据做完加减后,结果应该在OUT单元显示的,结果数据总是无法到达OUT单元,然后检查了一下线路,发现OUT单元的线路连错了,改正后,终于成功了。2. 实验中遇到过死循环情况。我们检查加载的程序,发现同一个地址放了两个不同的微程序,修改地址,使地址不再发生冲突,成功解决了问题。七、实验总结:1通过本次实验,细致地了解了计算机内部的基本电路,对简单模型机有了深刻的了认识。我们修改了部分指令,并且增加了存数,取数和减法指令,学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1