MIPS汇编范例复习过程Word文档格式.docx
- 文档编号:14571748
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:15
- 大小:55.25KB
MIPS汇编范例复习过程Word文档格式.docx
《MIPS汇编范例复习过程Word文档格式.docx》由会员分享,可在线阅读,更多相关《MIPS汇编范例复习过程Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
lw$t2,4($t0)
li$v0,4#打印msg1
la$a0,msg1
syscall
li$v0,1#打印转换前$t1中的值
move$a0,$t1
li$v0,4#打印msg2
la$a0,msg2
li$v0,1#打印转换前$t2中的值
move$a0,$t2
move$t3,$t1#关键部分,在寄存器间move数据
move$t1,$t2
move$t2,$t3
li$v0,4#打印msg3
la$a0,msg3
li$v0,1#打印转换后$t1中的值
li$v0,4#打印换行符/n
la$a0,msg4
li$v0,1#打印转换后$t2中的值
###########datasegment##############
.data
number:
.word12,34
msg1:
.asciiz"
thefirstnumberis:
\n"
msg2:
\nthesecondnumberis:
msg3:
\nnowtheyareswappedas:
msg4:
.ascii"
##endoffile
程序运行结果为:
本文来自CSDN博客,转载请标明出处:
mips汇编简单实例——一个小计算器收藏
其实开始的时候一直在看mips的指令格式,看了、忘了,没什么效果。
现在通过这个例子,简单训练一下:
mips汇编中:
常用寄存器的使用;
系统调用:
1(print_int),4(print_str),5(read_int),10(exit);
算术运算:
add,sub,mul,div;
逻辑运算及跳转;
上代码:
(汇编写的少,代码书写、风格还很差劲,感谢请大虾指教):
viewplaincopytoclipboardprint?
#sampleexample'
asmallcalculater’
.text#textsection
.globlmain#callmainbySPIM
la$t0,value#loadaddress"
value"
into$t0
la$a0,msg0
li$v0,4
syscall#print"
pleasechoosetheoperation:
"
li$v0,5
syscall
sw$v0,8($t0)
la$a0,msg1
firstnum:
sw$v0,0($t0)
la$a0,msg2
secondnum:
sw$v0,4($t0)#readtheothernum
la$a0,newline
lw$t1,0($t0)#loadthefirstnum
lw$t2,4($t0)#loadthesecondnum
lw$t3,8($t0)#loadtheoperation
beq$t3,1,addOp#if+
beq$t3,2,subOp#if-
beq$t3,3,mulOp#if*
beq$t3,4,divOp#if/
addOp:
add$t4,$t1,$t2#$t1+$t2=$t4
sw$t4,12($t0)#
la$t5,addFlag
jprintResult
subOp:
sub$t4,$t1,$t2#$t1-$t2=$t4
sw$t4,12($t0)
la$t5,subFlag
mulOp:
mul$t4,$t1,$t2#$t1*$t2=$t4
la$t5,mulFlag
divOp:
div$t4,$t1,$t2#$t1/$t2=$t4
la$t5,divFlag
printResult:
lw$a0,0($t0)
li$v0,1
syscall#readfirstnumber
la$a0,0($t5)
syscall#printopflag
lw$a0,4($t0)
syscall#printsecondnumber
la$a0,equalStr
="
lw$a0,12($t0)
syscall#printsumresult
jexit
exit:
\n"
li$v0,10
syscall#exit
#datasection
.data
value:
.word0,0,0,0,0#0:
firstnum,4:
secondnum,8:
operation,12:
result
msg0:
pleasechoosetheoperation(1~4):
\n\t\t1:
+,addition\n\t\t2:
-,subtracter\n\t\t3:
*multiplication\n\t\t4:
/,division\n"
msg1:
msg2:
secondnum:
addFlag:
+"
subFlag:
-"
mulFlag:
*"
divFlag:
/"
equalStr:
newline:
\n===============================\n"
asmallcalculater’
.text#textsection
.globlmain#callmainbySPIM
la$t0,value#loadaddress"
into$t0
la$a0,msg0
li$v0,4
syscall#print"
sw$v0,8($t0)
la$a0,msg1
sw$v0,0($t0)
la$a0,msg2
sw$v0,4($t0)#readtheothernum
la$a0,newline
lw$t1,0($t0)#loadthefirstnum
lw$t2,4($t0)#loadthesecondnum
lw$t3,8($t0)#loadtheoperation
beq$t3,1,addOp#if+
beq$t3,2,subOp#if-
beq$t3,3,mulOp#if*
beq$t3,4,divOp#if/
add$t4,$t1,$t2#$t1+$t2=$t4
sw$t4,12($t0)#
la$t5,addFlag
jprintResult
sub$t4,$t1,$t2#$t1-$t2=$t4
sw$t4,12($t0)
la$t5,subFlag
mul$t4,$t1,$t2#$t1*$t2=$t4
sw$t4,12($t0)
la$t5,mulFlag
div$t4,$t1,$t2#$t1/$t2=$t4
sw$t4,12($t0)
la$t5,divFlag
lw$a0,0($t0)
li$v0,1
syscall#readfirstnumber
la$a0,0($t5)
syscall#printopflag
lw$a0,4($t0)
syscall#printsecondnu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MIPS 汇编 范例 复习 过程