MIPS汇编范例复习过程Word文档格式.docx

上传人:b****1 文档编号:14571748 上传时间:2022-10-23 格式:DOCX 页数:15 大小:55.25KB
下载 相关 举报
MIPS汇编范例复习过程Word文档格式.docx_第1页
第1页 / 共15页
MIPS汇编范例复习过程Word文档格式.docx_第2页
第2页 / 共15页
MIPS汇编范例复习过程Word文档格式.docx_第3页
第3页 / 共15页
MIPS汇编范例复习过程Word文档格式.docx_第4页
第4页 / 共15页
MIPS汇编范例复习过程Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

MIPS汇编范例复习过程Word文档格式.docx

《MIPS汇编范例复习过程Word文档格式.docx》由会员分享,可在线阅读,更多相关《MIPS汇编范例复习过程Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

MIPS汇编范例复习过程Word文档格式.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1