组成原理课程设计说明书--计算器文档格式.docx
- 文档编号:13191263
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:21
- 大小:221.96KB
组成原理课程设计说明书--计算器文档格式.docx
《组成原理课程设计说明书--计算器文档格式.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计说明书--计算器文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
2设计内容
计算机组成原理算法实现
(二):
能够实现定点小数的机器数表示、定点小数的变形补码加减运算、定点小数的原码乘法运算和浮点数的加减运算。
3实现方法
3.1系统目标
(1)系统进入主界面后:
菜单需要在输入口令正确后方可激活使用。
口令输入错误时要给出重新输入口令的提示,三次口令输入错误应该禁止使用。
(2)从主界面中点击相应的菜单可以进入对应的算法演示界面。
(3)实现定点小数的机器数表示,对于正数的定点小数,它的原码、补码、反码为它本身;
移码为最高符号位变为1,其他位保持不变。
对于负数的原码为最高符号位为一,数值位保持不变;
补码为从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位);
反码为符号位为1,数值位按位取反;
移码为符号位为0,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(不包括符号位)。
(4)定点小数变形补码加减运算算法:
首先获取两个数的变形补码,获取补码的原则是:
首先判断是正数还是负数,如果是正数,则将“+”号去掉,然后将第一个“0”变成“00”;
如果是负数,则将“-"
号去掉,然后从低位向高位找,直到找到第一不为零的位置将第一个不为零的数后(包括第一个不为零的数)的所有数按位取反(包括符号位)。
然后在通过按位加运算计算两个数的值,如果是减法也转换成加法做。
(5)定点原码乘法:
乘数的每一位分别跟被乘数的每一位相乘,1*1=1,1*0||0*1||0*0=0,其中小数点后面的第一位为两个数的符号运算。
乘数以及被乘数转化为原码形式正数直接操作,负数第一个由零变为1 。
浮点加减法根据阶码相同阶码则后面的尾数做加减运算,阶码不相同先把阶码转化为相同的阶码,
9
同时改变的尾数做加减法运算。
按每一个界面的返回的时候就会转变为开始的界面。
(6)浮点数的加减运算:
首先将两个浮点数用变形补码表示。
然后进行对阶运算,若两数的阶码相同,则可直接对两数的尾数进行加减运算,否则必须先使两数的阶码相同,原则是将阶码小的向阶码大的看起,再对阶码小的浮点数的尾数进行移位处理。
再将两个数的尾数进行求和,并进行规格化处理,规格化处理的原则是:
如果符号位是11并且小数点后的第一位也是1,则将尾数左移,直到小数点后的第一个数为0;
如果符号位是00并且小数点后的第一个数是0,则进行左
移处理,直到小数点后的第一个数为1;
如果符号位是10或01,则将尾数右移一位。
最后进行舍入处理且判断溢出。
系统流程图如下:
开始
错误
密码连续输入错
误三次以内重新输入
密码正确否
正确
定点小数的
机器表示
定点小数的变形
补码加减运算
定点小数的原
码乘法运算
浮点数的加减
运算
密码连续输入错误三次
退出
3.2主体功能
1)详细设计
数据表示方法:
计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。
(1)定点表示:
约定机器中所有数据的小数点位置是固定的。
由于约定在固定的位置,所以小数点就不再使用记号“.”来表示。
(2)浮点表示:
定点数表示的数的范围有限,为了扩展数的表示范围,按照科学记数法表示数据的方式,任何一个二进制数N都可以表示成如下的格式:
N=M*2e
M:
尾数,是一个纯小数,决定数据的表示精度
e:
指数,又称为阶码,是一个整数,决定数据的表示范围数的机器码表示:
一般书写所表示的数据称为真值,在计算机中为了表示符号位,通常把符号位和数字位一起编码来表示相应的数,形成了各种数据的存储和表示方法,这些
编码称为机器码。
常用的机器码有原码、反码、补码和移码。
(1)原码:
原码的数值部分是该数的绝对值,最高位表示符号位,最高位为
0是正数,最高位为1是负数。
(2)反码:
正数的反码等于原码,负数的反码等于除符号位外其余二进制数码0变成1,1变成0。
正数:
[x]反=[x]原=x
负数:
符号位不变,其余变反
(3)补码:
正数的补码等于原码,负数的补码等于反码加1。
[x]补=[x]原
[x]补=[x]反+1
定点加、减法运算:
结论:
任何两数的补码之和等于两数之和的补码
补码加法:
基本公式:
[x]补+[y]补=[x+y]补补码减法:
[x]补-[y]补=[x]补+[-y]补
当负数用补码表示后,符号位作为数据的一部分一起参加运算,运算器不用考虑参加加法运算的操作数的正负以及结果的正负,任意数的加法就可以化作正数加法来实现。
溢出:
在定点数机器中,数的大小超出了定点数能表示的范围,叫溢出。
a.在定点小数机中数的表示范围是-1<
x<
1,如果运算过程中出现了大于1或者小于-1的情况。
b.在定点整数机(8位)中数的表示范围是-128<
127,如果运算过程中出现了大于127或者小于-128的情况。
双符号位法:
将符号位扩展为2位,具体说就是对于正数两个符号位是“00”,对于负数两个符号位是“11”。
两个符号位都看作数码一样参加运算。
两个数相加后,其结果的符号位出现“01”或“10”两种组合时,表示发生溢出。
符号位“01”,上溢出符号位“10”,下溢出
符号位“00”或者“11”,未溢出从[y]补求[-y]补的法则是:
对[y]补“包括符号位求反且最末位加1”,即可得到[-y]补
定点乘法运算:
在定点计算机中,两个原码表示的数相乘的运算规则是:
乘积的符号位由两数
的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。
设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个与门并行产生。
第二步:
列和的产生:
利用全加器
浮点数的加减法运算:
浮点数的加减法运算分为六个步骤:
(1)0操作数检查
浮点加减运算过程比定点运算过程复杂。
如果判知两个操作数x或y中有一个数为0,即可得知运算结果而没有必要再进行后续的一系列操作以节省运算时间。
0操作数检查步骤则用来完成这一功能。
参加加法运算的数据都是非零,进入下一步。
(2)比较价码大小并完成对阶
为了便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位。
两浮点数进行加减,首先要看两数的阶码是否相同,若二数阶码不同,表示小数点位置没有对齐,此时必须使两个数阶码相同,这个过程叫作对阶。
对阶操作规定使尾数右移,尾数右移后阶码作相应增加,因此对阶时,总是使小阶向大阶看齐。
(3)尾数进行加减运算
对阶结束后,即可进行尾数的求和运算。
不论加法运算还是减法运算,都按加法进行操作(减法利用补码减法转换成补码的加法来做),其方法与定点加减法运算完全一样。
(4)结果规格化
a.采用双符号位表示尾数时,如果两符号位为01或10时,应将结果尾数右移一位,阶码加1(叫“右规”)。
b.如果尾数最高数值位与符号位相同,应将尾数左移,阶码减1,直至数值位最高位与符号位相反(叫“左规”)。
(5)舍入运算
在对阶向右规格化,尾数向右移位,这样被右移的尾数的低位部分会被丢掉,从而造成一定误差,要进行舍入处理。
简单的舍入方法有两种:
一种是“0舍1入”法,即如果右移时被丢掉数位的最高位为0则舍去,为1则将尾数的末位做加加1运算。
另一种是“恒置1”法,即只要数位被移掉,就在尾数的末尾恒置1。
(6)判断结果是否溢出
根据补码的双符号检测溢出的方法确定阶码是否溢出。
2)具体设计
(1)判定用户登录合法性。
用户在使用算法演示系统前需要输入正确的密码,若密码正确将提示“密码输入正确,欢迎使用组成原理算法演示系统!
”,此时菜单项变为可用。
若用户输入的密码错误,系统将提示“密码输入错误,请重新输入!
”。
若用户连续三次输错密码,系统将提示“密码输入错误三次,程序将自动关闭!
”
密码输入正确、错误和错误三次以上的情况如图1、2、3所示:
图1密码输入正确
图2密码输入错误
(2)定点小数机器表示
图3密码输入错误三次以上
用户在主界面上点击“定点小数机器表示”菜单,进入定点小数机器表示演示模块。
用户点击“输入”按钮,输入一个二进制定点小数,按“原码”、“反码”、
“补码”、“移码”按钮后,会输入相应的机器数值,如图4所示。
图4定点小数的机器表示
(3)定点小数的变形补码运算
用户在主界面点击“定点小数的变形补码运算”菜单,进入定点小数的变形补
码运算模块。
用户点击输入按钮,输入两个参与运算的二进制定点小数,按“加法”按钮,程序会在对应的输出框中输出变形补码加运算的值,按“减法”按钮,程序会在对应的输出框中输出变形补码减运算的值,如图5所示。
所计算过程中发生溢出,程序将给出正溢出或负溢出提示,如图6所示。
图5定点小数的变形补码加减运算
(4)定点小数的原码乘法
图6发生溢出
用户在主界面点击“定点小数的原码乘法”菜单,进入定点小数的原码乘法演
示模块。
用户点击输入按钮,输入两个参与运算的二进制定点小数,按“乘法”按钮,程序会在对应的输出框中输出原码乘法运算的值,结果如图7所示。
(5)浮点数的加减运算
图7定点小数的原码乘法
用户在主界面点击“浮点数的加减运算”菜单,进入浮点数的加减运算模块。
用户点击输入按钮,输入参与运算的两个浮点数的阶码和尾数值(阶码形如
+010、-011等,尾数形如+0.1010101、-0.11110101等),按“加法”按钮,程序会在对应的输出框中输出浮点数加运算的阶码和尾数值,按“减法”按钮,程序会在对应的输出框中输出浮点数减
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组成 原理 课程设计 说明书 计算器