浮点数的表示和计算文档格式.docx
- 文档编号:6401798
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:14
- 大小:30.08KB
浮点数的表示和计算文档格式.docx
《浮点数的表示和计算文档格式.docx》由会员分享,可在线阅读,更多相关《浮点数的表示和计算文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
addi$s4,$s4,0x00800000#calculatethesecondnumber
andi
$s5,$s1,
0x#s5isthesign
srl$s5,
$s5,31
$s6,$s1,
0x7f800000
#s6istheexponent
srl$s6,
$s6,23
$s7,$s1,
0x007fffff
#s7isthefraction
addi$s7,$s7,0x00800000
sub$t0,$s3,$s6
blt$t0,0,sumL1#addsub
bgt$t0,0,sumL2#subadd
beq$tO,
0,sumL3
2.减法指令如下
:
mysub:
sw$ra,
20($sp)
sw$fp,
16($sp)
addiu
$fp,$sp,28
sw$a0,
0($fp)
#calculatethefirstnumber
$s2,$s0,0x
#s2isthesign
srl$s2,
$s2,31
$s3,$s0,0x7f800000#s3istheexponent
srl$s3,
$s3,23
$s4,$s0,0x007fffff#s4isthefraction
xori
$s5,$s1,0x
#s5isthesign
$s6,$s1,0x7f800000#s6istheexponent
$s7,$s1,0x007fffff#s7isthefraction
sub$t0,
$s3,$s6
blt$t0,
0,subL1
#+,-
bgt$t0,
0,subL2
#-,+
beq$t0,
0,subL3
#+,+or-,-
3.乘法指令如下:
mutilStart:
srl
$t2,$s0,31
srl
$t3,
$s1,31
sll
$t4,
$s0,1
$t4,24#exp
$t5,
$s1,1
$t5,24#exp#O...1frac
sll$t
6,
$s0,9
$t6,
$t6,9
ori
$t6,0x00800000
$t6,8
addi
$t4,$t4,1#0...1frac
$t7,
$s1,9
$t7,9
$t7,0x00800000
$t7,8
$t5,$t5,1
sub
$t4,127
add
$t4,$t5#finalexp
$t5,$t5
mutilCompareSign:
add$t2,$t2,$t3
sll$t2,$t2,31#finalsign
multu$t6,$t7
mfhi$t5
#regularandi$t8,$t5,0xbeq$t8,0x,mutilnextsll$t5,$t5,1
sub$t4,$t4,1
mutilnext:
sll
#IEEE754
sub$t4,
$t4,1
srl$t5,
$t5,9
#finalfraction
mutilFinal:
$t4,$t4,24
srl$t4,
addu
$t2,$t2,$t4
$t2,$t2,$t5
#result
add$s2,
$t2,$zero
#saveresult
li$v0,
4
la$a0,
msg3
syscall
2
mtc1
$t2,$f12
la
$a0,msgO
#newline
li
$v0,4
lw$ra,
lw$fp,
$sp,$sp,32
jr$ra
4.除法指令如下
divideStart:
srl$t3,
sll$t4,$sO,1
24
#exp
9
0x00800000
$t5
#finalexp
127
divideCompareSign:
add
$t2,$t2,$t3
$t2,
31
#finalsign
$t8,
$t8
#usetorecorddivid
$t3
#usetorecordremainder
#useascounter
dividecompare
bge
24,dividebreakout#comparethetwonumber
blt
dividelower
dividegreater:
$t6,$t7#divideislower
1
j
dividelower:
$t6,$t6,1
$t8,1
dividebreakout:
blt
$t8,0x00800000,dividedoSll
0x01000000,dividedoSrl
divideresult
dividedoSll:
$t8,$t8,1
subi
$t4,$t4,1
bit
0x00800000,dividedoSll
dividedoSrl:
divideresult:
bgt$t4,255,divideoverFlow
$t8,9
$t4,24
$t2,$t4
$t2,$t8
add$s2.
$t2,$zero#saveresult
li$v0.
#outputmessage
jdiviedend
5.
十进制转换为二进制指令如下:
dex2:
subu$sp,$sp,32
add$a0,
$s2,$zero
add$t9,
$zero,$a0
sub$t6,
$t6,$t6
#set$t6=0
sub$t7,
$t7,$t7
#set$t7=0
$t5,$zero,
32#set$t5=32asacounter
$t8,$zero,
0x#set$t8=10000000000000000000
000000000000
beginLoop:
addi
$t5,$t5,
-1#counter--
and
$t7,$t8,$t9
srl$t8,
srlv
$t7,$t7,$t5
$t7,$zero
#outputonebit
li$vO,1
beq$t5,$t6,ExistjbeginLoop
#ifequalsjumpexist
6.十进制转换为十八进制指令如下:
dex16:
$t0,$t0
srloop:
bge$t0,
&
dex16end
#16
addi$t0,
$t0,1
srl$t1,
$s2,28
sll$s2,
$s2,4
bgt$t1,
9,outchar
$t1,$zero
jsrloop
outchar:
$t1,$t1,55
#changetochar
11
dex16end:
la$aO,
msg0#newline
li$v0,4
Iw$ra,20($sp)
lw$fp,16($sp)
addiu$sp,$sp,32
四、实验结果及分析和(或)源程序调试过程
1.实验结果:
本次实验我们以十进制实数形式的输入两个浮点数,在内存中以IEEE754单精
度方式表示,执行运算操作后,以十进制形式把结果输出,并且可以以二进制和十六
进制的方式显示输出,下图是执行加法运算,并输出二进制形式:
Hnput.atheTarmattooutjut:
5BbinEiry&
DlOKIOaOCOOl10000000000000000000
Inputa.心P:
1.add2sulL3.mill4.div
F图是执行乘法操作,并输出十六进制形式:
Hnpiita**LlF:
1adJ
2.sul
3.niiol4.
Aiv
0.
quit
J
TkeTi.rst
Floating
value
is.25
TheSecond
1510.5
Thst
is:
l25
Inputathe
formatt
.ooutjut:
5.hinary
Kex
6
3FAC-0000
InputaOF-
1.add
卫.cut
3.mnl4.
div
o.
减法运算如下图:
IrLpiJ-td:
P1.add.
2.sub
2.mul
4_div
quit
上
Th-eFirstFloating
1S21&
TheSecond,floating
it:
20
Tkereasult0
InputfitheFannatU
joutput:
5binary6
Hex
6
C12M0M
InputuOF:
1.add
2,sub
3mul
4div
qpuit
除法运算如下图:
Iikputa'
Jp.1.atld2..sub3.mul4.J.ivU.quit
IlieFirstFloa-tingv3J.UA1s'
12.24
TheSecondFlaatinj^alnei
Tktreasullis'
6.12
IitputatheEQcmQtt<
joutputbiliary&
Jtex:
日
31000000110000111101011100001010
Input&
L'
P;
1.2.sub3=mJLJiyG.juit
当输入错误,如除数为0时,会显示错误信息并退出,如下图:
InjputaOP-1-add2.sub3.n~ul4.div0.kjpqit
lh电furstFLo且長lugval口e:
is:
1
Th*SecondFloatingvalu#is:
Error
'
■一prograuni耳finishe!
running:
一一
2.实验分析:
本次实验我们使用MIPS汇编指令,利用整数运算指令来编写了一个浮点数运算
程序,通过在MARS软件上进行调试运行,得到了正确结果,本次实验实现了以下功
能:
(1)程序提供了人机交互方式(字符界面)供用户选择相应的功能;
(2)接受十进制实数形式的输入,在内存中以IEEE754单精度方式表示,支持以二进制和十六进制的方式显示输出;
(3)实现了浮点数的加减乘除运算;
(4)没有使用浮点指令,只利用了整数运算指令来完成软件的编写。
3.成员分工
加、减、乘、除四个运算指令程序的编写。
十进制转二进制,十进制转十六进制代码的编写。
实验报告由两人共同完成。
备注:
1、教师在布置需撰写实验报告的实验前,应先将报告书上的“实验题目”、“实验性质”、“实验目的”、“实验项目内容”等项目填写完成,然后再下发给学生。
2、教师在布置需撰写报告的实验项目时,应告知学生提交实验报告的最后期限。
3、学生应按照要求正确地撰写实验报告:
1)在实验报告上正确地填写“实验时间”、“实验地点”等栏目。
2)将实验所涉及的源程序文件内容(实验操作步骤或者算法)填写在“实验过程或算法(源程序)”栏目中。
3)将实验所涉及源程序调试过程(输入数据和输出结果)或者实验的分析内容填写在“实验结果及分析和(或)源程序调试过程”栏目中。
4)在实验报告页脚的“报告创建时间:
”处插入完成实验报告时的日期和时间。
5)学生将每个实验完成后,按实验要求的文件名通过网络提交
(上载)到指定的服务器所规定的共享文件夹中。
每个实验一个电子文档,如果实验中有多个电子文档(如源程序或图形等),则用WinRAR压缩成一个压缩包文档提交,压缩包文件名同实验报告文件名(见下条)。
6)提交的实验报告电子文档命名为:
“年级(两位数字不要“级”字)专业(缩写:
计算机科学与技术专业(计科)、网络工程专业(网络)、信息安全专业(信息)、物联网工程(物联网))班级(两位数字)学号(八位数字)姓名实验序号(一位数字).doc。
如学号为、年级为2011级、专业为“计算机科学与技术”专业、班级为“02班”、姓名为“王宇”的学生,完成的第一次实验命名为:
11计科02班王宇1.Doc,以后几次实验的报告名称以此类推。
4、教师(或助教)在评价学生实验时,应根据其提交的其他实验相关资料(例如源程序文件等)对实验报告进行仔细评价。
评价后应完成的项目有:
1)在“成绩”栏中填写实验成绩。
每个项目的实验成绩按照五级制(优、良、中、及格、不及格)方式评分,实验总成绩则通过计算每个项目得分的平均值获得(平均值计算时需将五级制转换为百分制优=95、良=85、中=75、及格=65、不及格=55)。
2)在“教师评价”栏中用符号标注评价项目结果(用"
表示正确,
用X表示错误,用〜表示半对半错)。
3)在“教师评价”栏中“评价教师签名”填写评价教师(或助教)姓名。
将评价后的实验报告转换为PDF格式文件归档。
4)课程实验环节结束后,任课教师将自己教学班的实验报告文件夹进行清理。
在提交文件夹中,文件总数为实验次数X教学班学生人数(如,教学班人数为90人,实验项目为5,其文件数为:
90X5=450)。
任课教师一定要认真清理,总数相符,否则学生该实验项目不能得分。
最后将学生提交的实验报告刻光盘连同实验成绩一起放入试卷袋存档。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浮点 表示 计算
![提示](https://static.bingdoc.com/images/bang_tan.gif)