好文档 - 专业文书写作范文服务资料分享网站

计算机组成原理实验

天下 分享 时间: 加入收藏 我要投稿 点赞

.

者小于-1的情况。

b)在定点整数机(8位)中数的表示围是-128

①符号位“01”,上溢出 ②符号位“10”,下溢出

③符号位“00”或者“11”,未溢出从[y]补求[-y]补的法则是:对[y]

补“包括符号位求反且最末位加1”,即可得到[-y]补。 3.2.4定点整数的一位原码乘法运算

进行定点整数原码乘法的实现时都是在主窗体选择对应的菜单项后进入对应窗体再进行具体操作。操作时首先选择“输入”按扭输入参与运算的数据,然后再选操作按扭。如图3-7

图3-7定点整数原码乘法

设置输出数组out[]与进位标志数组carry[],carry[]最后一位初值为‘0’, carry[]长度比输入大1位。对输入的两个字符串仿照并行乘法器的工作原理,将乘法转化为加法。使用循环语句,按位相乘,再做原码加法。由于是带一位符号位的原码乘法,要得到运算结果的符号位,就要对in1[0]和in2[0]

.

.

进行判断:if ((in1[0] == '0' && in2[0] == '0') || (in1[0] == '1' && in2[0] == '1')) signal = \== '1' && in2[0] == '0')) signal = \;返回按钮。

算法的原理:在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。设n位被乘数和乘数用定点小数表示(定点整数也同样适用) 被乘数 [x]原=xf .xn-1…x1x0 乘数 [y]原=yf .yn-1…y1y0 则乘积 [z]原=(xf⊕yf)+(0.xn-1…x1x0)(0.yn-1…y1y0) 式中,xf为被乘数符号,yf为乘数符号。 机器算法: 机器中一种方法是多次采用”加法-移位“的方法来完成,称为串行乘法器,它的硬件结构简单,但是速度慢,目前广泛使用的是流水式阵列乘法器,称为并行乘法器。无符号数m乘以n会产生m*n个位积,出现m+n个列和,并行乘法器的关键是快速产生m*n个位积,对位积进行相加运算产生m+n个列和。

第一步:位积的产生观察乘法运算0*0=0,0*1=0,1*0=0,1*1=1 相当于:a∩b 。所以m*n个位积可以由m*n个与门并行产生。第二步:列和的产生:利用全加器

3.2.5浮点数的加减运算

进行定点整数单符号位补码加减法、定点整数原码乘法、浮点加减法的实现时都是在主窗体选择对应的菜单项后进入对应窗体再进行具体操作。操作时首先选择“输入”按扭输入参与运算的数据,然后再选操作按扭。如图3-8

.

.

图3-8浮点加减法运算

数据输入分为阶码和尾数,将两个数的阶码和尾数对应的变形补码表示出来,比较价码大小并完成对阶即小阶向大阶看齐,若对阶时发生溢出则发出提醒,统一阶码后,采用规格化进行尾数求和,对尾数进行舍入处理,判断尾数最末尾情况,用Replace语句实现粗略舍入处理。最后进行变形补码还原。 算法的原理:浮点数的加减法运算分为六个步骤: a)0操作数检查

浮点加减运算过程比定点运算过程复杂。如果判知两个操作数x或y中有一个数为0,即可得知运算结果而没有必要再进行后续的一系列操作以节省运算时间。0操作数检查步骤则用来完成这一功能。参加加法运算的数据都是非零,进入下一步。

b)比较价码大小并完成对阶 为了便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位。 两浮点数进行加减,首先要看两数的阶码是否相同,若二数阶码不同,表示小数点位置没有对齐,此时必须使二数阶码相同,这个过程叫作对阶。对阶操作规定使尾数右移,尾数右移后阶码作相应增加,因此对阶时,总是使小阶向大阶看齐。 c)尾数进行加减运算

对阶结束后,即可进行尾数的求和运算。不论加法运算还是减法运算,都按加法进行操作(减法利用补码减法转换成补码的加法来做),其方法与定点加减法运算完全一样。 d)结果规格化

.

.

① 采用双符号位表示尾数时,如果两符号位为01或10时,应将结果尾数右移一位,阶码加1(叫“右规”)。

② 如果尾数最高数值位与符号位相同,应将尾数左移,阶码减1,直至数值位最高位与符号位相反(叫“左规”)。 e)舍入运算

在对阶向右规格化,尾数向右移位,这样被右移的尾数的低位部分会被丢掉,从而造成一定误差,要进行舍入处理。

简单的舍入方法有两种:一种是“0舍1入”法,即如果右移时被丢掉数位的最高位为0则舍去,为1则将尾数的末位做加加1运算。另一种是“恒置1”法,即只要数位被移掉,就在尾数的末尾恒置1。 f)判断结果是否溢出

阶码为00 011,阶码的符号位为00,根据补码的双符号检测溢出的方法确定阶码不溢出。

4、设计小结

通过这次的计算机组成原理的课程设计,把我很多不懂的容又学习了一遍,又巩固了很多。使我对计算机的认识有了更进一步的加深和认知。在这为期一周的课程设计的期间,在进行课程设计的过程中,我不仅巩固了以往所学过的知识,还学到了许多在课堂上所学不到的东西,比如动手能力,实际问题的解决能力和与团队中成员的团队协作与配合的能力,这都使我受益匪浅。但是我自己有很多不会的知识点,有很大一部分是同学们告诉我的。 也有很多是自己在书本上学习到得当初在学习的时候并没有好好的学习所 在做这个的时候比较困难。

经过了这次的课程设计,我想,对于我日后的计算机的相关的学习肯定会有诸多助益与影响,为将来的学习生活打下了坚实的基础。以后在遇到这些就不会无从下手了。

参考文献

[1] 白中英. 计算机组成原理(第五版)[M]. : 科学, 2010. [2]吴萍. java程序设计 (第一版) [M]. :清华大学2006.

.

.

附录

NewClass.java

public static void main(String args[]) {

new Newclass(\计算机组成原理\);}

public void actionPerformed(ActionEvent e)

{String s = new String(\);if (e.getSource() == button1)

{while (i==0&&m <= 3 && (!(text1.getText().equals(\)))) {if

(text1.getText().equals(s))

.

8zirp2mipb721et5ixox47ty70kclt004ze
领取福利

微信扫码领取福利

微信扫码分享