资源描述:
《浮点数的表示和计算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《计算机组成原理》实验报告年级、专业、班级姓名实验题目浮点数的表示和计算实验时间实验地点A主404实验成绩实验性质□验证性□设计性□综合性教师评价:□算法/实验过程正确;□源程序/实验内容提交□程序结构/实验步骤合理;□实验结果正确;□语法、语义正确;□报告规范;其他:评价教师签名:一、实验目的(1)深入掌握二进制数的表示方法以及不同进制数的转换;(2)掌握二进制不同编码的表示方法;(3)掌握IEEE754中单精度浮点数的表示和计算。二、实验项目内容假设没有浮点表示和计算的硬件,用软件方法采用仿真方式实现IEEE754单精度浮点数的表示及运算功
2、能,具体要求如下:(1)程序需要提供人机交互方式(GUI或者字符界面)供用户选择相应的功能;(2)可接受十进制实数形式的输入,在内存中以IEEE754单精度方式表示,支持以二进制和十六进制的方式显示输出;(3)可实现浮点数的加减乘除运算;(4)可以使用80X86或MIPS或ARM汇编指令,但是不能使用浮点指令,只能利用整数运算指令来编写软件完成。三、实验过程或算法(源程序)1.本次项目我们采用单精度浮点数格式读入两个浮点数,并读入一个操作符,然后根据操作符类型选择运算类型,加法指令如下:sum:subu$sp,$sp,32sw$ra,20($s
3、p)sw$fp,16($sp)addiu$fp,$sp,28sw$a0,0($fp)#calculatethefirstnumberandi$s2,$s0,0x80000000#s2isthesignsrl$s2,$s2,31andi$s3,$s0,0x7f800000#s3istheexponentsrl$s3,$s3,23andi$s4,$s0,0x007fffff#s4isthefractionaddi$s4,$s4,0x00800000#calculatethesecondnumberandi$s5,$s1,0x80000000#s5i
4、sthesignsrl$s5,$s5,31andi$s6,$s1,0x7f800000#s6istheexponentsrl$s6,$s6,23andi$s7,$s1,0x007fffff#s7isthefractionaddi$s7,$s7,0x00800000sub$t0,$s3,$s6blt$t0,0,sumL1#addsubbgt$t0,0,sumL2#subaddbeq$t0,0,sumL32.减法指令如下:mysub:subu$sp,$sp,32sw$ra,20($sp)sw$fp,16($sp)addiu$fp,$sp,28sw$
5、a0,0($fp)#calculatethefirstnumberandi$s2,$s0,0x80000000#s2isthesignsrl$s2,$s2,31andi$s3,$s0,0x7f800000#s3istheexponentsrl$s3,$s3,23andi$s4,$s0,0x007fffff#s4isthefractionaddi$s4,$s4,0x00800000#calculatethesecondnumberxori$s5,$s1,0x80000000#s5isthesignsrl$s5,$s5,31andi$s6,$s1,
6、0x7f800000#s6istheexponentsrl$s6,$s6,23andi$s7,$s1,0x007fffff#s7isthefractionaddi$s7,$s7,0x00800000sub$t0,$s3,$s6blt$t0,0,subL1#+,-bgt$t0,0,subL2#-,+beq$t0,0,subL3#+,+or-,-3.乘法指令如下:mutilStart:srl$t2,$s0,31srl$t3,$s1,31sll$t4,$s0,1srl$t4,$t4,24#expsll$t5,$s1,1srl$t5,$t5,24#ex
7、p#0...1fracsll$t6,$s0,9srl$t6,$t6,9ori$t6,$t6,0x00800000sll$t6,$t6,8addi$t4,$t4,1#0...1fracsll$t7,$s1,9srl$t7,$t7,9ori$t7,$t7,0x00800000sll$t7,$t7,8addi$t5,$t5,1sub$t4,$t4,127add$t4,$t4,$t5#finalexpsub$t5,$t5,$t5mutilCompareSign:add$t2,$t2,$t3sll$t2,$t2,31#finalsignmultu$t6,
8、$t7mfhi$t5#regularandi$t8,$t5,0x80000000beq$t8,0x80000000,mutilnextsll$t5,$