计算机组成原理1.doc

上传人:scccc 文档编号:14761647 上传时间:2022-02-16 格式:DOC 页数:30 大小:1.22MB
返回 下载 相关 举报
计算机组成原理1.doc_第1页
第1页 / 共30页
计算机组成原理1.doc_第2页
第2页 / 共30页
计算机组成原理1.doc_第3页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机组成原理1.doc》由会员分享,可在线阅读,更多相关《计算机组成原理1.doc(30页珍藏版)》请在三一文库上搜索。

1、计算机组成原理课程设计报告题目计算机组成原理算法实现(一)_专业学生姓名 班级学号指导教师 发放日期目 录目 录11课程设计目的 32课程设计内容与要求 32.1系统设计内容32.2设计要求33系统的总体设计33.1系统的设计目标 33.2主体功能43.3各个模块系统流程图 5主界面流程图 5定点整数的机器表示 6定点整数的变形补码加减运算 7定点整数的原码乘法流程图 1.1浮点数的加减运算 1.24实验结果和测试 15.4.1进入主页面测试 1.54.2定点整数的机器表示 1.84.3定点整数的变形补码加减运算 204.4定点整数的原码乘法 224.5浮点数的加减运算 235实验小结26.6

2、参考文献271课程设计目的本课程设计是在学完本课程教学大纲规定的全部内容、完成所有实践环节的基础上, 旨在深化学生学习的计算机组成原理课程基本知识,进一步领会计算机组成原理的一些算 法,并进行具体实现,提高分析问题、解决问题的综合应用能力。2课程设计内容与要求2.1系统设计内容题目:计算机组成原理算法实现(一)功能:能够实现定点整数的机器数表示、定点整数的变性补码加减运算、定点整数的原码一位乘法运算和浮点数的加减运算。2.2设计要求(1 )、系统进入(主)窗体设计:菜单需要在输入口令正确后方可激活使用。口令输入错误时要给出重新输入口令的提示,三次口令输入错误应禁止使用。(2)、口令输入正确后可

3、以根据不同的菜单选择不同的操作指令进行不同的操作计算。主要的操作指令有:定点整数的机器表示、定点整数的变形补码加减运算、 定点整数的原 码乘法以及浮点数的加减运算。3系统的总体设计3.1系统的设计目标该体统的设计主要完成系统的各个窗体设计以及个窗体中的方法计算。在进入主窗体时设置口令,口令正确后可以进入主窗体中点击不同的菜单栏实现不同的计算。(1、该系统要完成定点整数的机器表示,当点击输入按钮时可以输入一串二进制数。然后点击不同的按钮实现该二进制数的原码、 反码、补码、移码的运算,并可以返回到主 窗体。(2 )该系统要完成整数的变形码加减运算,可以点击输入进入运算阶段,分别输入第 一个数和第二

4、个数然后点击加法进行加法运算,点击减法进行减法运算。并可以返回到主 窗体。(3 )该系统可以完成定点整数的原码乘法,点击输入按钮进行运算根据提示分别输入 被乘数和乘数,点击乘法按钮进行乘法运算并查看乘法结果。最后可以返回到主窗体。(4)该系统可以进行浮点数的加减运算,点击输入按钮输入第一个数的阶码和第二个 数的阶码。分别点击加法、减法求出加法、 减法的阶码并且可以查看各数的尾数。计算完 成后并可以返回到主窗体。3.2主体功能该体统的主体功能主要有以下几个重要的模块,进入主窗体进行口令认证模块、定点整 数的机器表示模块、定点整数的变形补码加减运算模块、定点整数的原码乘法模块和浮点 数加减运算。其

5、主要的模块下又分为各个小的计算模块, 主要总体模块详细设计模块图如 下所示:图3-1系统总体功能模块图3.3各个模块系统流程图主界面流程图图3-2主界面流程图定点整数的机器表示输入一个二进制数,当选择不同按钮时则对其进行相应的操作。如当选择原码计算 时,则调用原码运算函数对其进行运算,正数则将符号位置0,其余位不变,若为负数则将其符号位置1,其余位不变;当选择反码运算时,则调用反码运算函数对其进行运算, 正数则将保持不变,若为负数,也将其各位取反;当选择补码按钮时,正数的补码仍为本 身,而负数时则除符号位,各位取反末位加一;当选择移码按钮时,则根据移的位数进行相应的移位。定点整数的机器表示模块

6、的流程图输入一个二进制数开始-选择运算功能Y原码NY反码NY补码N移码N返回Y进行原码运算*进行反码运算*进行补码运算*进行移码运算结束图3-3定点整数的机器表示流程图定点整数的变形补码加减运算计算方法补码加法:X补+Y补=X+Y补。该式表明,当有符号的两个数采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算 (若符号位有进位,则丢掉), 结果为两数之和的补码形式。补码减法:X补-Y补=X补+-Y补。该式表明,求X-Y补可以用X补与-Y补相加来实现。-Y补是对减数进行求负操作。一般称已知Y补求得-Y补的过程叫变补 或求负。已知+Y补求-Y补的规则是全部位(含符号位)按位取反后再加

7、 1。当负数用 补码表示后,符号位作为数据的一部分一起参与运算, 运算器不用考虑参加加法运算的操 作数的正负以及结果的正负,任意数的加法就可以化作正数加起来运算。关于溢出在定点整数机器中数的表示范围是-128vxv127 ,如果运算过程中出现了大于 127 或者小于-128的情况。双符号位法:将符号位扩展为 2位,具体说就是对于正数两个符 号位是“ 00 ”,对于负数两个符号位是“ 11”。两个符号位都看做数码一样参加运算。两 个数相加后,其结果的符号位出现“ 01 ”或“ 10 ”两种组合时,表示发生溢出。符号位“ 01 ”,上溢出符号位“ 10 ”,下溢出符号位“ 00”或“11 “,未溢

8、出下面的问题是如何检查加减运算中的溢出问题。通常有三种表述方式(说法):a. 两个符号相同的补码数相加,如果和的符号与加数的符号相反,或两个符号相反的补 码数相减,差的符号与减数的符号相同,都属于运算结果溢出。这种判别方法比较复杂, 要区别加还是减两种不同运算情况,还要检查结果的符号与其中一个操作数的符号的同 异,故很少使用;b. 两个补码数相加减时,若最高数值位向符号位送的进位值与符号位送向更高位的进位 值不相同,也是运算结果溢出。c. 在采用双符号位(如定点小数的模 4补码)运算时,若两个符号位的得值不同(01或10)则是溢出。01表明两个正数相加,结果大于机器所能表示的最大正数,称为上溢

9、;10表明两个负数相加,结果小于机器所能表示的最小负数,称为下溢;双符号位的高位符号位,不管结果溢出否,均是运算结果正确的符号位,这个结论在乘法运算过程中是 很有实际意义的。请注意,在采用双符号位的方案中,在寄存器和内存储器存储数据时,只需存一位符号,双符号位仅用在加法器线路部分。下图是关于定点整数的变形补码加减运算流程图图3-4定点整数的变形补码加减运算流程图334定点整数的原码乘法流程图在定点计算中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位 按异或运算得到,而乘积的数值部分则是两个正数相乘之积。机器算法:机器中一种方法是多次采用“加法 -移位“的方法来实现,称为串行乘法

10、 器,它的硬件结构简单,但是速度慢,目前广泛使用的是流水式阵容乘法器,称为并行乘 法器。无符号数m乘以n会产生m*n个位积,出现m+n个列和,并行乘法器的关键是 快速产生m*n个位积,对位积进行相加运算产生 m+n列和。定点整数的原码乘法流程图如下所示335浮点数的加减运算浮点数的加减运算分为六步: 0操作数检查浮点加减运算过程比定点运算过程复杂。 如果判知两个操作数X或者丫中有一个数 位0,即可得知运算结果而没有必要再进行后续的一系列操作以节省时间。 0操作数检查 步骤则用来完成这一功能。参加加法运算的数据都是非零,进入下一步。 比较阶码大小并完成对阶为了便于直观理解,假设两数均以补码表示,

11、阶码采用双符号位,尾数采用单符号位。 两浮点数进行加减,首先要看两个数阶码是否相同,若二数阶码不同,表示小数点位置没 有对齐,此时必须使两个数阶码相同,这个过程叫做对阶。对阶操作规定使尾数右移,尾数右移后阶码做相应增加,因此对阶时,总是使小阶向大阶看齐。 对阶结束后,即可进行尾数的求和运算。无论加法运算还是减法运算,都按加法进 行操作,其方法与定点加减法运算完全一样。 结果规格化a. 采用双符号位表示尾数时,如果两符号位 01或10时,应将结果尾数右移一位, 阶码加1.b. 如果尾数最高数值位与符号位相同,应将尾数右移,阶码减1,直至数值位最高位与符号位相反。 舍入运算浮点运算在对阶或右规时,

12、尾数需要右移,被右移出去的位会被丢掉,从而造成运算结果精度的损失。为了减少这种精度损失,可以将一定位数的移出位先保留起来,称为保护位,在规格化后用于舍入处理 IEEE754标准列出了四种可选的舍入处理方法:就近 舍入、朝+ %舍入、朝-X舍入、朝o舍入。 判断结果是否溢出根据补码的双符号检查溢出的方法确定阶码是否溢出。与定点数运算不同的是,浮点数的溢出是以其运算结果的阶码的值是否产生溢出来判断的。若阶码的值超过了阶码所能表示的最大正数,贝U为上溢,进一步,若此时浮点数为正数,贝U为正上溢,记为+ X,若浮点数为负数,贝以负上溢,记为-X;若阶码的值超过了阶码所能表示的最小负数, 则为下溢,进一

13、步,若此时浮点数为正数,贝U为正下溢,若浮点数为负数,贝U为负下溢。 正下溢和负下溢都作为0处理。浮点数的加减运算如下图所示4实验结果和测试4.1进入主页面测试(1 )在开始界面有口令设置只有口令正确才可以进行选择运算,不正确就会提示口令错误重新输入。下图是打开的开始界面图4-1开始界面(2)输入口令时一共有三次机会,如果三次都输入错误则被禁止进入表示无权使用该系统图4-2 口令输入错误的情况图4-3三次口令输入错误的情况(3 )只有口令正确才可真正进入主界面进行下面的选择各个功能运算。下图是口令输入 -lol xl正确的界面定点曲机器表示定点整数变形*冏诫去定点整觀原码馬去计算机组成原理算法

14、实现(一)输入口令;图4-4主界面此图和开始界面不同点在于:开始界面的菜单栏是灰色的不可使用的, 而主界面的菜 单栏是黑色的可供选择的可以使用的。4.2定点整数的机器表示计挚输入(1)进入主界面后选择定点整数的机器表示,然后进行运算二JL XJ也聽数机器套云 定数变啓朴IHftnWE法左克星救涼诣璀去匡玄Jb匚减世图4-5定点整数的机器表示(2)根据提示输入一个二进制数然后进行运算(注:要输入一个带符号的二进制整点整 数)根据提示可以依次求出原码、反码、补码、移码,并且可以通过返回键返回主界面进 行其他的运算。机器数的表示口回区定点整数的机器表示谙输入一个二魁制数;+1101011该数对应的庾

15、码肯201101011荷濡匹反码补码穆码題回图4-7反码的计算图4-6输入二进制数和原码图4-8补码的计算图4-9移码的计算4.3定点整数的变形补码加减运算(1 )在菜单栏选择定点整数的变形补码加减运算,进行该算法的运算T yt奔机苗成凉理| n | X .龙点删颁觀農示定点删疑称网力诡法定点细收原酹薰法浮点加减誉图4-10定点整数的变形补码加减运算(2 )根据提示分别输入第一个数和第二个数然后分别点击加法、减法进行加法和减法的 运算,并查看结果(注:要输入二进制数,不可随便输入)。最后可以通过返回键返回主 界面选择其他算法计算。T 计算仇ia成凍理-Il a I x电点3邀机謂離示 走点数变

16、盼屈力哌去 定福3E原码痂古 浮点柯诫法图4-11加法运算咗 计茸机迫磁項理二I LI. X定盍毁芥.歸表示旨理故变称炳力法 定点期娠码蕪法 浮点加矚去图4-12减法运算4.4定点整数的原码乘法(1)回到主界面在菜单栏选择定点整数的原码乘法进行运算图4-13定点整数的原码乘法界面(2 )根据提示分别输入被乘数和乘数并查看结果图4-14乘法结果4.5浮点数的加减运算(1)在主界面选择浮点数的加减运算进入运算阶段图4-15浮点数的加减运算界面(2) 根据提示分别输入两个数的阶码和尾数 当输入的数超出界限则被提示输入的阶码溢出图4-16阶码溢出的情况 只有正确输入才有值可计算图4-17加法的阶码尾数

17、计算 有的输入可以计算加法的阶码但并不代表减法的阶码可以算出以下情况是输出数索引 超出数组界限不可计算图4-18索引超出了数组界限的情况图4-19浮点数的加减运算4.6帮助回到主界面选择帮助按钮,窗口会给出帮助提示图4-20帮助显示5实验小结这周的课程设计就要结束了。从最开始的做题到现在的报告总结我完成一个过程。 在这个过程里我领悟了很多。在最开始的做实验报告时感觉挺难的之前根本就没有写过关于这种类型的实验报 告,而且是第一次使用 C#来写。虽然在中间写的过程中还有很多不会的东西,但是通 过查看书本和资料还有问同学和老师,基本上都解决了。其中有一部分的程序无法满足 题目的要求 在同学的帮助下最

18、后得到了解决,通过这件事我感觉自己还有还有很多不 足,仍然有一些有待提高的地方。我觉得课程设计的作用一方面是最基本的就是要完成这一科目,差不多也是对自己的一个阶段性的总结;还有就是在整个设计的过程中,让我们认真的独立思考,在和同 学交流的过程中也增强了我们的语言组织能力和彼此之间的友谊。通过课程设计让我们不断的发现自己的不足从而去改善, 这是一种学习的态度,不仅仅是在这次的课程设计 中,在以后的无论生活还是学习方面都应该注意和努力改善。通过这次比较完整的一个程序的设计,我摆脱了单纯的理论知识学习状态, 和实际设计的结合锻炼了我的综合运 用所学的基础知识,解决实际问题的能力,同时也提高我查阅文献

19、资料、对程序整体的 把握等其他能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理, 都使我的能力得到了锻炼,经验得到了丰富。这是我们都希望看到的也正是我们进行课 程设计的目的所在。虽然设计内容繁多,过程繁琐但我的收获却更加丰富。各种组件的 运用,各种算法的应用,各种控件的利用我都是随着设计的不断深入而不断熟悉并逐步 掌握的。和老师以及同学的沟通交流更使我对程序整体的规划与设计有了新的认识也对 自己提出了新的要求。提高是有限的但提高也是全面的,正是这一次设计让我积累了许 多实际经验,也必然会让我在未来的工作学习中表现出更高的应变能力和理解力。6参考文献1 杨树林胡洁萍.C#程序设

20、计与案例教程M.北京:清华大学出版社,2012.2 白中英.计算机组成原理(第四版)M.北京:科学出版社,2010.3 甘岚主编.计算机组成原理与系统结构北京:北京邮电大学出版社,20084 白中英,杨春武主编.计算机组成原理题解、题库与实验(第三版) 西安:科学出 版社,2001 卢洪虎,马卓杰,林洪军,计算机工程与设计,2006. 杨春武,冯一兵,计算机硬件基础实验教程,清华大学出版社,2005.7 陈湘,ASP.NET与网站开发编程.北京:清华大学出版社,2002.8 王爱英,计算机组成与结构 第3版,北京:清华大学出版社,20019 薛胜军,计算机组成原理,武汉:华中科技大学出版社,200010 孙群力,计算机组成原理,北京:科学出版社,200011 辛云辉,计算机组成原理实用教程,北京:清华大学出版社,200112 刘丽芳,宋焕章,计算机组成与结构,北京:北京邮电大学出版社,2004

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1