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

上传人:b****1 文档编号:168675 上传时间:2022-10-05 格式:DOCX 页数:20 大小:481.71KB
下载 相关 举报
计算机组成原理实验报告.docx_第1页
第1页 / 共20页
计算机组成原理实验报告.docx_第2页
第2页 / 共20页
计算机组成原理实验报告.docx_第3页
第3页 / 共20页
计算机组成原理实验报告.docx_第4页
第4页 / 共20页
计算机组成原理实验报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

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

《计算机组成原理实验报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告.docx(20页珍藏版)》请在冰豆网上搜索。

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

课程设计说明书

计算机组成原理算法实现

(一)

1课程设计目的

1)随着计算机和通信技术的蓬勃发展,中国开始进入信息化时代,计算机及技术的应用更加广泛深入,计算机科学传统的专业优势已经不再存在。

社会和应用对学生在计算机领域的知识与能力提出了新的要求。

《计算机组成原理》是计算机科学与技术专业必修的一门专业主干课程。

并且将这门课运用到现在生活也是很重要的。

这样,便更容易形成计算机的整体概念

2)本课程是在学习完本课程教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的计算机组成原理课程基础知识,进一步领会计算机组成原理的一些算法,并进行具体实现,提高分析问题、解决问题的综合应用能力。

 

2课程设计内容与要求

1)题目:

计算机组成原理算法实现

(一) 。

2)功能①能够实现定点整数的机器数表示、定点整数的变形补码加减运算、定点整数的原码一位乘法运算和浮点数的加减运算。

 

3功能模块详细设计

3.1 系统目标 

(1)实现定点整数的机器数表示,对于正数的定点整数,它的原码、补码、反码为它本身;移码为最高符号位变为1,其他位保持不变。

对于负数的原码为最高符号位为一,数值位保持不变;补码为从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位);反码为符号位为1,数值位按位取反;移码为符号位为0,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(不包括符号位)。

 

(2)定点整数变形补码加减运算算法:

首先获取两个数的变形补码,获取补码的原则是:

首先判断是正数还是负数,如果是正数,则将“+”号去掉,然后将第一个“0”变成“00”;如果是负数,则将“-"号去掉,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位)。

然后在通过按位加运算计算两个数的值,如果是减法也转换成加法做。

 

(3)定点原码乘法:

乘数的每一位分别跟被乘数的每一位相乘,1*1=1,1*0||0*1||0*0=0,其中小数点后面的第一位为两个数的符号运算。

乘数以及被乘数转化为原码形式正数直接操作,负数第一个由零变为1 。

浮点加减法根据阶码相同阶码则后面的尾数做加减运算,阶码不相同先把阶码转化为相同的阶码,同时改变的尾数做加减法运算。

按每一个界面的返回的时候就会转变为开始的界面。

 

(4)浮点数的加减运算:

首先将两个浮点数用变形补码表示。

然后进行对阶运算,若两数的阶码相同,则可直接对两数的尾数进行加减运算,否则必须先使两数的阶码相同,原则是将阶码小的向阶码大的看起,再对阶码小的浮点数的尾数进行移位处理。

再将两个数的尾数进行求和,并进行规格化处理,规格化处理的原则是:

如果符号位是11并且小数点后的第一位也是1,则将尾数左移,直到小数点后的第一个数为0;如果符号位是00并且小数点后的第一个数是0,则进行左移处理,直到小数点后的第一个数为1;如果符号位是10或01,则将尾数右移一位。

最后进行舍入处理且判断溢出。

流程图如下:

(5)当用户遇到不懂的问题或者是然间操作上有疑问,可以有地方寻求帮助。

从而使这款软件更加的为用户着想,得到好评。

3.2 主体功能 登录界面设计 

编写Buttonbutton=newButton("确认");语句,使得确认按钮为button。

紧接着创建新的事件。

这是一个窗口如图1,用户需要在框里填写密码,具体是passwrod.equals(text1.getText()语句来获取框里的内容。

然后比较是否正确。

如果正确则显示“欢迎进入”界面(图2)。

如果不正确,则显示“口令错误重新输入”(图3)。

并且通过staticintm=0;语句来记录用户输入的次数,直到m==3时,系统自动关闭如图4所示.

图1主界面图

图2口令正确激活使用

图3口令错误重新输入

图4三次口令错误系统自动关闭

3.3定点整数的机器表示 

点击主界面的按钮“定点整数的机器表示”,进入图5所示界面。

根据提示,在框中输入一个二进制数并点击按钮原码,该二进制数的原码则显示在下一个框中如图6。

对于正数的定点整数,它的原码、补码、反码为它本身,移码为最高符号位变为1,其他位保持不变。

对于负数的原码为最高符号位为一,数值位保持不变;反码为符号位为1,数值位按位取反(图7);补码为从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位)语句为if(yuan[b-1]=='1')break;b--;(图8);移码为符号位为0,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(不包括符号位)如图9所示。

图5定点整数的机器表示界面

图6二进制对应的原码

图7二进制对应的反码

图8二进制对应的补码

图9二进制对应的移码

3.4定点整数的变形补码加减运算

点击主界面的按钮“定点整数的变形补码加减运算”,进入图10所示界面。

根据提示,在第一、第二个框中分别输入一个数。

点击按钮“加法”“减法”得到值,如图11所示。

利用语句if(me1==1)Strings1=work1(jt1.getText());Strings2=work2(jt2.getText());if(s1.length()>s2.length())r=s1.length();elser=s2.length();

charc[]=newchar[r];chard[]=newchar[r];来计算加法。

如果是减法也转换成加法做。

首先判断是正数还是负数,如果是正数,则将“+”号去掉,然后将第一个“0”变成“00”;如果是负数,则将“-"号去掉,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位)。

然后在通过按位加运算计算两个数的值。

图10定点整数的变形补码加减运算界面

图11定点整数的变形补码加减运算界面 

3.5定点整数的原码乘法

选择主窗体中“定点整数的原码乘法”时进入图12所示的窗体界面。

根据提示,在第一、第二个框中分别输入一个数。

点击按钮“乘法”得到值,如图13所示。

chartemp1[]=newchar[n1+n2-4];chartemp2[]=newchar[n1+n2-4];语句功能是实现两数相乘。

乘数的每一位分别跟被乘数的每一位相乘,1*1=1,1*0||0*1||0*0=0,其中小数点后面的第一位为两个数的符号运算。

乘数以及被乘数转化为原码形式正数直接操作,负数第一个由零变为1。

语句 if(b[y]=='1')ss1.getChars(2,n1,temp2,0);else{for(intg=0;g

作用是得到两数之和。

图12定点整数的原码乘法界面

图13定点整数的原码乘法结果

3.6浮点数的加减运算

选择主窗体中“浮点数的加减运算”时进入图14所示的窗体:

Stringg1=dJ(da,db);语句是获得阶码之间的差。

Stringss=sg.substring(index+1)

ss1=ss.replaceFirst("0","00");语句来获得第一个数的补码,以此类推。

使用语句if(jie!

=0){g6=jM(g3,jie);g6=hZ(g6);}来判断是否溢出。

如果符号位是11并且小数点后的第一位也是1,则将尾数左移,直到小数点后的第一个数为0;如果符号位是00并且小数点后的第一个数是0,则进行左移处理,直到小数点后的第一个数为1;如果符号位是10或01,则将尾数右移一位。

最后进行舍入处理且判断溢出。

如图15所示。

图14浮点数的加减运算界面

图15浮点数的加减运算结果 

3.7帮助

选择主窗体中“帮助”时进入图16所示的窗体界面。

简单的一个小程序,并没有完善其功能。

也可以没有这个选项。

具体语句是Buttonbutton5=newButton("帮助");功能是按钮命名为帮助。

内容显示语句为JOptionPane.showMessageDialog(null,"这是一个功能简单的小程序","提示",JOptionPane.ERROR_MESSAGE);}

图16帮助按钮显示功能

4设计小结

这次计算机组成原理课程设计使我的能力得到了很大的提高,此外使我对上学期所学的计算机组成原理的知识得到了提高,加深了对计算机工作原理的认识。

我也体会到了作为一个大学生,要想学有所得,就得学习主动,不要什么都希望别人亲自传授,面对问题要自己去努力解决,多问问身边的同学,多动手查查,多上网找找,所以要想成功就得事事做到细心,耐心,恒心。

 

这次的课程设计,加强了我们动手、思考和解决问题的能力。

巩固和加深了对计算机加法器的并行进位和串行进位的理解,提高综合运用所学知识解决问题的能力。

培养了我们选用参考书,查阅手册及文献资料的能力。

培养独立思考,深入研究,分析问题、解决问题的能力。

通过Java软件的使用,让我们对其中的原理能清楚的掌握。

此外,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。

而且做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有些问题就不是很能理解,做完课程设计,那些问题就迎刃而解了。

而且还可以记住很多东西。

认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。

所以这个期末测试之后的课程设计对我们的作用是非常大的。

这次的课程设计使我懂得了理论与实际相结合是很非常重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在整个设计过程中,构思是很花费时间的。

当然,有时用错了方法,总是实现不了。

同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

通过本次课程设计进一步了解了定点整数的各类运算,以及对定点整数的各项操作。

加深了对组成原理中定点整数的机器数表示,定点整数的变形补码加减法运算,定点整数的原码一位乘法运算和浮点数的加减法运算。

更好的了解了组成原理,更好的明白了组成原理的运算的实现,同时对于JAVA的程序运用也更为熟练。

经过将近一个月的的计算机组成原理课程设计,让我们体会到了苦尽甘来的滋味,这次课程设计使我对上学期老师所教的计算机组成原理的知识得到了巩固和提高.

参考文献

[1]启东计算机公司.CCT-TV计算机组成原理

[2]王爱英.计算机组成原理与系统结构.北京:

清华大学出版社,2001

[3]蒋本珊,《计算机组成原理与系统结构》,北京航空航天大学出版社

[4]白中英.计算机组成原理(第五版)[M].北京:

科学出版社,2010.

附录:

Classa

package组成原理;

importjava.*;

importjavax.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.awt.*;

publicclassaextend

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

当前位置:首页 > 党团工作 > 党团建设

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

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