计算机组成原理课程设计a,计算机组成原理课程设计报告.doc

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机组成原理课程设计报告.doc

(13页)

427df29c605fca86b9a8124f1f5671cd.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.90 积分

计算机组成原理课程设计报告实验项目:1、设计一个具有带进位加法和立即数寻址方式的模型机2、设计一个具有带进位加法和条件跳转的模型机专 业: 计算机科学与技术 班 级: 09级37-3班 学 号: ——————姓 名: 合 作: 指导教师: 实验时间: 2011-6-15 ~~ 6-17 实验一:设计一个具有带进位加法和立即数寻址方式的模型机1、问题描述本题目设计的是一台具有输入、输出、带进位加法、储存和跳转功能的模型计算机,并写出工作程序和测试数据验证所设计的指令系统。2、设计目标在设计完本程序后,所设计模型机能够完成从一个外设输入一个数到指定的寄存器中,另外输入立即数并将其存入另一个、寄存器中,两数进行进位相加并将结果保存到第一个寄存器,输出结果,并显示。另外,实现无条件跳转至开始。3、指令格式助记符号机器指令码功 能IN0000 0000Input -> R0ADC Imm1110 0000 XXXX XXXXR0+Imm+CY -> R0STA addr0010 0000 XXXX XXXXR0 -> [addr]OUT addr0011 0000 XXXX XXXX[addr] -> LEDJMP addr0100 0000 XXXX XXXX[addr] -> PC4、设计微指令(1)定义指令码,及定义一个下地址为08H指令指令编码微地址IN0000 000008ADC0001 000009STA0010 000010OUT0011 000011JMP0100 000012 (2)设计微指令编码表微地址S3S2S1S0MCnWEA9A8ABCUA5-UA000000000011000000000000001010000000111101101100000100200000000110000000100100008000000000001000000000001090000000111101101100000110300000000101100000000010004000000011010001000000101051001000110011010000000010A00000001111011011000011006000000001110000000000111070000001010000010000000010B0000000111101101100011010D0000000011100000000011100E0000000010010000000011110F0000001100000010000000010C00000001111011011001000010000000001101000110000001(3)微程序流程图(4)由编码得到微程序根据以上编写的微程序,以及微指令代码化的方法得到的微程序代码为:$M00018001$M0101ED82$M0200C048$M08001001$M0901ED83$M0300B004$M0401A205$M05919A01$M0A01ED86$M0600E007$M07028201$M0B01ED8D$M0D00E00E$M0E00900F$M0F030201$M0C01ED90$M1000D181(5)写工作程序$P0000$P0110$P0222$P0320$P0401$P0530$P0601$P0740$P0800(6)建立联机操作文件为了从PC机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为TXT,可用记事本来建立的,要求:a、 测试用的工作程序排在文件的前面,每个内存地址及代码占一行;b、 微指令代码排在文件的后面,每个微地址及微指令代码占一行;(7)按照实验电路图连接实验线路实验采用复杂模型机系统连线图,电路图如下:(8)运行(a)系统与PC机联机实验系统安装有一个标准的DB型9针RS-232C串口插座,使用配套的串行通信电缆分别插在实验系统及PC机的串口,即可实现系统与PC机的联机操作。(b)下载工作程序和微程序使用唐都软件将工作程序和微程序下载到实验箱的内存和控制存储器中。其中,自带电 线的实验箱用NCMP53软件,启动软件后使用F4[装载]进行下载;外接电源线的实验箱用CMPP软件,启动软件后在菜单中选择[转储]/[装载]进行下载。(c)运行实验原理图,及数据流程图如下:(9)调试以及调试过程(把写好的程序下载到唐都实验箱,打开软件复杂模型机的原理图,按步骤点击单步运行,查看运行的指令和微指令的过程)调试发现问题:a、 刚开始时点击时,机器不运行。b、 DR1与DR2相加结果不正确。c、 从R0到内存STA存数指令的存数操作有误,R0-B打开的同时把AR的LDAR也打开了,造成指向内存单元改变。也就造成输出时的数据不正确和。d、 修改上一条错误后,误把R0数据存在01单元,覆盖了原来的指令,当跳转指令跳转回到原来程序的开头时,执行第二次就发生了错误。所以针对以上问题,都一一地找到相应的错误之处和解决方法:a1、连线有错误,检查后发现错误之处,并改正b2、改变s3到s0 ,改为1001(带进位加法)c3、由于疏忽造成,修改对应的LDAR开关编码d4、修改$P程序,存到没用的内存上述问题解决之后,程序便可运行出结果。(10)运行结果在上图中会执行INPUT到R0,然后从内存中取出一个数放到DR2中,R0内的数放到DR1中,DR1+DR2+cy放到R0中,再将R0内的数显示到LED上。实验二:设计一个具有带进位加法和条件跳转的模型机1、问题描述本题目设计的是一台具有输入、输出、数据传送、带进位加法、条件跳转,停机功能的模型计算机,并写出工作程序和测试数据验证所设计的指令系统。2、指令格式助记符号指令格式功 能MOVrs,rdXXXX Rs RdRs->RdADCrs,rdXXXX Rs RdRs+Rd+CY -> R0BZCD00 00 00 00 D当cy=1或z=1时,D->PC否则,顺序执行。INrdXXXX 01 RdSW->rdOUTrdXXXX 10 RdRd -> LEDHALTXXXX 0000停机3、设计微指令(1)定义一个下地址为20H指令指令编码微地址IN0011 000023MOV0010 000022ADC0001 000021BZCD0000 000020OUT0100 000024HALT0101 000025(2)设计微指令微地址S3S2S1S0MCnWEA9A8ABCUA5-UA000000000011000000000000001010000000111101101100000100200000000110000000110000020000000011000000011000001110000000111101101100000110300000000110100011000000121000000011010010000000100040000000110110010000001010510010001100110100000000122000000011001001000000001230000000000010000000000012400000001000000100000000125000000011000000000100101(3)画出微程序流程图(4) 微程序代码根据以上编写的微程序,以及微指令代码化的方法得到的微程序代码为:$M00018001$M0101ED82$M0200C060$M200180C1$M1101ED83$M0300D181$M2101A404$M0401B205$M05919A01$M22019201$M23001001$M24030201$M25018025(5)设计工作程序代码,以测试微程序$P0035$P0124$P0235$P0314$P0444$P0500$P0607$P0750(6)按照实验一建立联机文档并按照书本《计算机组成原理课程设计》的附录2(系统连线参考图)进行连线。(7)运行与调试把程序下载但唐都实验箱进行运行和调试。通过调试发现的问题:A、 不知道R1、R2、R0三个寄存器的关系(请教老师解决)。B、 运行第一条指令后便停滞,不再执行下面的操作。C、 解决a后,从输入模块输入到R1或R2都不能实现。D、 条件跳转指令后,执行非设计程序,程序跑飞了。通过前面的几次实验,已经获得部分解决方法的经验B1、检查连线未能发现问题,估计可能是哪里接触不良,故而弃之,换实验箱,重新调试,发现可以运行的。C2、自己未能找出错误所在,请教老师,指出连线上,我们仍采用的是原来电路图,因而没有把R1、R2寄存器连到电路中。D3、未设置好跳转的方向,最后使其跳转到停机指令,使其处于停机状态。(8)运行结果 程序会先从SW读一个数放到R1中,然后将R1内的数转移到R0中,然后将R0内的数放到DR1,R1中的数放到DR2,然后DR1+DR2+cy放到R0中,然后将R1内的数显示到LED上,下一步就进入了停机的死循环。实验总结与心得体会经过两三天的课程设计,给我个人的感觉有进步、好玩。为何如此说呢?对于我个人来讲,我是比较喜欢实验课的,因为一来实验课比理论课有意思一点,二来,通过现象和操作更容易理解理论的内容。更何况,实践是检验真理的唯一标准,只有通过实践才能更好的理解和记忆我们的理论知识。通过此次课程设计,我更深入的了解到了计算机工作的过程和原理,特别是在指令的执行。虽然原来在理论课上讲解过,但是单单从字面上我一直没有完全搞明白,而实验却让人顿悟。而课程设计又给我们提供了一个良好的学习机会,我们可以和老师或者同学尽情地交流,发表自己的观点,在相互交流讨论合作中,相互促进,共同进步,提高了学习的效率和学习的激情。- 13 - 关 键 词: 设计 组成 报告 课程 原理 计算机

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

绝地求生登录计算机需要授权,绝地求生国服第三方授权登录异常解决方法 绝地求生国服授权登录错误怎么办...

近日,Steam第三方授权登录发生异常,导致所有需要Steam账号绑定登录的网站都出现登录错误,下面就为大家带来绝地求生国服第三方授权登录异常解决方法。绝地求生国服第三方授权登录异常解决方法老兵登机活动绑定公告亲爱的老兵们:今…

SQL Server索引怎么用

什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有…

EF 实现自定义数据库字符串

1、EF模板生成继承DbContext的类文件重新建一个部分类文件避免每次生成实体都会覆盖掉。2、重新构造调用数据库连接字符串的函数VS模板生成示例:public Test_DBEntities(): base("nameTest_DBEntities"){} 重写函数public Test_DBEntities(string conn…

原神服务器维护后抽奖池会更新吗,原神:武器池改动,玩家的诉求再次得到反馈!PS端将与官服互通!...

大伙直播都看了吗?反正我看完了。现在满脑子都是大伟哥的嗯典。这好吗?这不好。但是没有关系,内容还是有的。首先,剧情上的雷神确立了,就是这位大姐。(好像有什么锋利的东西悬在了我的头顶,不过这上面&…

解决Genymotion下载设备失败的方法(Connection Timeout)

一直下载不下来,报错。 解决办法: 打开 C:\Users\用户名\AppData\Local\Genymobile目录 打开genymotion.log文件,在里面最下面几行,找到如下日志 [Debug] Downloading file "http://files2.genymotion.com/dists/4.4.4/ova/…

寻仙服务器要维护多久,寻仙手游几天开一个区

摘要寻仙手游最新开服时间表IOS和安卓,寻仙手游什么时候新增开服,开服时间公告。我们将于8月17日(周四)凌晨5:00-9:00对全服进行停机更新,请您提前保存游戏进程,安全下线。听到很多小伙伴都在讨论寻仙手游几天开一个区&#xff0c…

Linux文件编程(2)

文件打开创建补充 &#xff08;1&#xff09;O_EXCL O_EXCL和O_CREAT配合使用 若文件不存在则创建文件 若文件存在则返回-1 代码演示 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include<stdio.h> int main() {int fd;fdope…

程序员常访问的国外技术交流网站

技术人员经常会在各种技术交流社区游逛&#xff0c;大家互相学习、交流、分享、帮助。互联网拉近了地球人的距离&#xff0c;让全世界的技术人员可以聚集在一起分享交流。当然因为多方面原因&#xff0c;通常最新最权威的技术知识传到国内存在一定“时差”。本文将给大家分享技…

标准C库对文件操作的引入

modeopen和fopen的区别 fopen、fread、fwrite的使用 &#xff08;1&#xff09;fopen FILE *fopen(const char *path, const char *mode);path&#xff1a;文件路径 mode&#xff1a;以什么权限打开&#xff0c;要用双引号 它的返回值并不是文件描述符 若失败返回NULL 若操作成…

转载爱哥自定义View系列--Paint详解

上图是paint中的各种set方法 这些属性大多我们都可以见名知意&#xff0c;很好理解&#xff0c;即便如此&#xff0c;哥还是带大家过一遍逐个剖析其用法&#xff0c;其中会不定穿插各种绘图类比如Canvas、Xfermode、ColorFilter等等的用法。 set(Paint src) 顾名思义为当前画笔…

只有程序员才懂这些黑色幽默!

也是机缘巧合&#xff0c;让我一个之前工作从未接触过程序员的人&#xff0c;现在成天和程序员打交道&#xff0c;要知道&#xff0c;不懂技术&#xff0c;往往他们想和你幽默的搞笑一下&#xff0c;未必能读懂。都说程序员情商低&#xff0c;不爱说话&#xff0c;比较闷骚。可…

Linux 进程、父进程、子进程

进程和程序的区别 一、 进程是动态的&#xff0c;程序是静态的&#xff1a;程序是有序代码的集合&#xff0c;进程是程序的执行。进程有核心态/用户态。 二、 进程是暂时的&#xff0c;程序是永久的&#xff1b;进程是一个状态变化的过程&#xff0c;程序可以长久保存 三、进…

几款开源富文本编辑器优缺点比较

1、百度UEditor 优点&#xff1a;插件多&#xff0c;基本满足各种需求&#xff0c;类似贴吧中的回复界面。缺点&#xff1a;不再维护&#xff0c;文档极少&#xff0c;使用并不普遍&#xff0c;图片只能上传到本地服务器&#xff0c;如果需要上传到其他服务器需要改动源码&…

C程序的储存空间是如何分配?

可执行程序包括BSS段、数据段、代码段。 在类UNIX系统下可使用size命令查看可执行文件的段大小信息。如size a.out&#xff1a; ~/Desktop/MyC$ size a.outtext data bss dec hex filename1672 600 8 2280 8e8 a.out1.数据段存放已初始化的全…

详细讲解Android的网络通信(HttpUrlConnection和HttpClient)

前言&#xff0c;Android的网络通信的方式有两种&#xff1a;使用Socket或者HTTP&#xff0c;今天这一篇我们详细讲解使用HTTP实现的网络通信&#xff0c;HTTP又包括两种方式编程方式&#xff1a; &#xff08;1&#xff09;HttpUrlConnection&#xff1b; &#xff08;2&#…

常见通信协议HTTP、TCP、UDP的简单介绍

TCP HTTP UDP:都是通信协议&#xff0c;也就是通信时所遵守的规则&#xff0c;只有双方按照这个规则“说话”&#xff0c;对方才能理解或为之服务。TCP HTTP UDP三者的关系:TCP/IP是个协议组&#xff0c;可分为四个层次&#xff1a;网络接口层、网络层、传输层和应用层…

创建进程相关函数

fork函数 pid_t fork(void); fork函数调用成功&#xff0c; 返回两次 在fork函数执行完毕后 如果创建新进程成功&#xff0c;则出现两个进程 一个是子进程&#xff0c;一个是父进程 在子进程中&#xff0c;fork函数返回0 在父进程中&#xff0c;fork返回新创建子进程的进程ID…

实现Windows和Linux之间的文件共享

一、windows 向linux共享文件(这里都是以win10和ubuntu为例)首先&#xff0c;打开网络共享中心。如图1图1打开更改高级共享设置&#xff08;图2&#xff09;图 2选择启用网络发现以及启用文件和打印机共享&#xff0c;然后点击保存更改。接着&#xff0c;选择你要共享的文件夹&…

鸡啄米MFC教程笔记之七:对话框:为控件添加消息处理函数

MFC为对话框和控件等定义了诸多消息&#xff0c;我们对它们操作时会触发消息&#xff0c;这些消息最终由消息处理函数处理。比如我们点击按钮时就会产生BN_CLICKED消息&#xff0c;修改编辑框内容时会产生EN_CHANGE消息等。一般为了让某种操作达到效果&#xff0c;我们只需要实…

进程的退出方式以及僵尸进程和孤儿进程

&#xff08;1&#xff09;正常退出 &#xff08;2&#xff09;异常退出 检查wait和waitpid所返回的终止状态的宏 宏说明WIFEXITED(status)若为正常终止子进程返回的状态&#xff0c;则为真。对于这种情况可执行WEXITSTATUS(status)&#xff0c;取子进程传送给exit、_exit或_…