计算机组成原理课程设计报告题目:计算机组成原理算法实现(一)_专业学生姓名班级学号指导教师发放日期计算机组成原理课程设计报告1目录目录........................................................................................................................................................11课程设计目的............................................22课程设计内容与要求......................................22.1系统设计内容................................................................................................................................22.2设计要求.........................................................................................................................................23系统的总体设计..........................................23.1系统的设计目标.............................................................................................................................23.2主体功能.........................................................................................................................................33.3各个模块系统流程图.....................................................................................................................43.3.1主界面流程图.............................................................................................................................43.3.2定点整数的机器表示.................................................................................................................43.3.3定点整数的变形补码加减运算.................................................................................................53.3.4定点整数的原码乘法流程图.....................................................................................................83.3.5浮点数的加减运算.....................................................................................................................94实验结果和测试.........................................114.1进入主页面测试...........................................................................................................................114.2定点整数的机器表示...................................................................................................................134.3定点整数的变形补码加减运算...................................................................................................154.4定点整数的原码乘法...................................................................................................................164.5浮点数的加减运算......................................................................................................................175实验小结...............................................196参考文献...............................................20计算机组成原理课程设计报告21课程设计目的本课程设计是在学完本课程教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的计算机组成原理课程基本知识,进一步领会计算机组成原理的一些算法,并进行具体实现,提高分析问题、解决问题的综合应用能力。2课程设计内容与要求2.1系统设计内容题目:计算机组成原理算法实现(一)功能:能够实现定点整数的机器数表示、定点整数的变性补码加减运算、定点整数的原码一位乘法运算和浮点数的加减运算。2.2设计要求(1)、系统进入(主)窗体设计:菜单需要在输入口令正确后方可激活使用。口令输入错误时要给出重新输入口令的提示,三次口令输入错误应禁止使用。(2)、口令输入正确后可以根据不同的菜单选择不同的操作指令进行不同的操作计算。主要的操作指令有:定点整数的机器表示、定点整数的变形补码加减运算、定点整数的原码乘法以及浮点数的加减运算。3系统的总体设计3.1系统的设计目标该体统的设计主要完成系统的各个窗体设计以及个窗体中的方法计算。在进入主窗体时设置口令,口令正确后可以进入主窗体中点击不同的菜单栏实现不同的计算。(1)该系统要完成定点整数的机器表示,当点击输入按钮时可以输入一串二进制数。然后点击不同的按钮实现该二进制数的原码、反码、补码、移码的运算,并可以返回到主窗体。(2)该系统要完成整数的变形码加减运算,可以点击输入进入运算阶段,分别输入第一个数和第二个数然后点击加法进行加法运算,点击减法进行减法运算。并可以返回到主窗体。(3)该系统可以完成定点整数的原码乘法,点击输入按钮进行运算根据提示分别输入被乘数和乘数,点击乘法按钮进行乘法运算并查看乘法结果。最后可以返回到主窗体。(4)该系统可以进行浮点数的加减运算,点击输入按钮输入第一个数的阶码和第二个数计算机组成原理课程设计报告3的阶码。分别点击加法、减法求出加法、减法的阶码并且可以查看各数的尾数。计算完成后并可以返回到主窗体。3.2主体功能该体统的主体功能主要有以下几个重要的模块,进入主窗体进行口令认证模块、定点整数的机器表示模块、定点整数的变形补码加减运算模块、定点整数的原码乘法模块和浮点数加减运算。其主要的模块下又分为各个小的计算模块,主要总体模块详细设计模块图如下所示:总体功能实现输入口令定点整数的机器表示定点整数的变形补码加减运算定点整数的变形补码加减运算定点整数的原码乘法浮点数的加减运算帮助输入一个二进制数分别输入二个二进制数分别输入被乘数和乘数分别输入二个数的阶码和尾码原码显示移码运算补码运算反码运算返回加法运算返回减法运算乘法结果显示返回加法阶码显示加法尾数显示减法阶码显示减法尾数显示返回图3-1系统总体功能模块图计算机组成原理课程设计报告43.3各个模块系统流程图3.3.1主界面流程图3.3.2定点整数的机器表示输入一个二进制数,当选择不同按钮时则对其进行相应的操作。如当选择原码计算时,则调用原码运算函数对其进行运算,正数则将符号位置0,其余位不变,若为负数则将其符号位置1,其余位不变;当选择反码运算时,则调用反码运算函数对其进行运算,正数则将保持不变,若为负数,也将其各位取反;当选择补码按钮时,正数的补码仍为本身,而负数时则除符号位,各位取反末位加一;当选择移码按钮时,则根据移的位数进行相应的移位。开始输入口令计数器加1口令是否正确口令输入错误重新输入计数器是否大于三激活菜单栏可以进行选择计算结束NNYY图3-2主界面流程图输入三次口令错误禁止使用计算机组成原理课程设计报告5定点整数的机器表示模块的流程图3.3.3定点整数的变形补码加减运算①计算方法补码加法:[X]补+[Y]补=[X+Y]补。该式表明,当有符号的两个数采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,则丢掉),结果为两数之和的补码形式。补码减法:[X]补-[Y]补=[X]补+[-Y]补。该式表明,求[X-Y]补可以用[X]补与[-Y]开始输入一个二进制数选择运算功能反码原码补码移码返回进行原码运算进行反码运算进行补码运算结束进行移码运算YYYYNNNN图3-3定点整数的机器表示流程图计算机组成原理课程设计报告6补相加来实现。[-Y]补是对减数进行求负操作。一般称已知[Y]补求得[-Y]补的过程叫变补或求负。已知[+Y]补求[-Y]补的规则是全部位(含符号位)按位取反后再加1。当负数用补码表示后,符号位作为数据的一部分一起参与运算,运算器不用考虑参加加法运算的操作数的正负以及结果的正负,任意数的加法就可以化作正数加起来运算。②关于溢出在定点整数机器中数的表示范围是-128x127,如果运算过程中出现了大于127或者小于-128的情况。双符号位法:将符号位扩展为2位,具体说就是对于正数两个符号位是“00”,对于负数两个符号位是“11”。两个符号位都看做数码一样参加运算。两个数相加后,其结果的符号位出现“01”或“10”两种组合时,表示发生溢出。符号位“01”,上溢出符号位“10”,下溢出符号位“00”或“11“,未溢出下面的问题是如何检查加减运算中的溢出问题。通常有三种表述方式(说法):a.两个符号相同的补码数相加,如果和的符号与加数的符号相反,或两个符号相反的补码数相减,差的符号与减数的符号相同,都属于运算结果溢出。这种判别方法比较复杂,要区别加还是减两种不同运算情况,还要检查结果的符号与其中一个操作数的符号的同异,故很少使用;b.两个补码数相加减时,若最高数值位向符号位送的进位值与符号位送向更高位的进位值不相同,也是运算结果溢出。c.在采用双符号位(如定点小数的模4补码)运算时,若两个符号位的得值不同(01或10)则是溢出。01表明两个正数相加,结果大于机器所能表示的最大正数,称为上溢;10表明两个负数相加,结果小于机器所能表示的最小负数,称为下溢;双符号位的高位符号位,不管结果溢出否,均是运算结果正确的符号位,这个结论在乘法运算过程中是很有实际意义的。请注意,在采用双符号位的方案中,在寄存器和内存储器存储数据时,只需