ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:55.25KB ,
资源ID:1648803      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1648803.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MIPS汇编范例复习过程.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MIPS汇编范例复习过程.docx

1、MIPS汇编范例复习过程MIPS汇编范例mips汇编语言之实现swap函数 收藏 此程序用来交换两个整数已在pcspim下编译通过# programed by stevie zou # purpose:to swap two values # 10-15-2008 # # text segment # .text .globl mainmain: la $t0, number #读取两个整数并放入寄存器$t1,$t2 lw $t1, 0($t0) lw $t2, 4($t0) li $v0, 4 #打印msg1 la $a0, msg1 syscall li $v0, 1 #打印转换前$t1中

2、的值 move $a0, $t1 syscall li $v0, 4 #打印msg2 la $a0, msg2 syscall li $v0, 1 #打印转换前$t2中的值 move $a0, $t2 syscall move $t3, $t1 #关键部分,在寄存器间move数据 move $t1, $t2 move $t2, $t3 li $v0, 4 #打印msg3 la $a0, msg3 syscall li $v0, 1 #打印转换后$t1中的值 move $a0, $t1 syscall li $v0, 4 #打印换行符 /n la $a0, msg4 syscall li $v0

3、, 1 #打印转换后$t2中的值 move $a0, $t2 syscall# data segment # .datanumber: .word 12,34msg1: .asciiz the first number is:nmsg2: .asciiz nthe second number is:nmsg3: .asciiz nnow they are swapped as:nmsg4: .ascii n# end of file程序运行结果为:本文来自CSDN博客,转载请标明出处:mips汇编简单实例一个小计算器 收藏 其实开始的时候一直在看 mips的指令格式,看了、忘了,没什么效果。现

4、在通过这个例子,简单训练一下: mips汇编中:常用寄存器的使用;系统调用: 1(print_int),4(print_str),5(read_int),10(exit);算术运算: add,sub,mul,div;逻辑运算及跳转;上代码:(汇编写的少,代码书写、风格还很差劲,感谢请大虾指教):view plaincopy to clipboardprint?#sample example a small calculater .text # text section .globl main # call main by SPIM main: la $t0, value # load addr

5、ess value into $t0 la $a0,msg0 li $v0,4 syscall #print please choose the operation: li $v0, 5 syscall sw $v0, 8($t0) la $a0,msg1 li $v0,4 syscall #print first num: li $v0, 5 syscall sw $v0, 0($t0) la $a0,msg2 li $v0,4 syscall #print second num: li $v0, 5 syscall sw $v0, 4($t0) #read the other num la

6、 $a0,newline li $v0,4 syscall #print n lw $t1, 0($t0) # load the first num lw $t2, 4($t0) # load the second num lw $t3, 8($t0) # load the operation 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) #

7、 la $t5,addFlag j printResult subOp: sub $t4, $t1, $t2 # $t1 - $t2 = $t4 sw $t4, 12($t0) la $t5,subFlag j printResult mulOp: mul $t4, $t1, $t2 # $t1 * $t2 = $t4 sw $t4, 12($t0) la $t5,mulFlag j printResult divOp: div $t4, $t1, $t2 # $t1 / $t2 = $t4 sw $t4, 12($t0) la $t5,divFlag j printResult printR

8、esult: lw $a0,0($t0) li $v0,1 syscall #read first number la $a0,0($t5) li $v0,4 syscall #print opflag lw $a0,4($t0) li $v0,1 syscall #print second number la $a0,equalStr li $v0,4 syscall #print = lw $a0,12($t0) li $v0,1 syscall # print sum result j exit exit: la $a0,newline li $v0,4 syscall #print n

9、 li $v0,10 syscall # exit # data section .data value: .word 0, 0, 0 ,0 ,0 # 0: first num ,4 : second num , 8 : operation , 12:result msg0 : .asciiz please choose the operation(14):ntt1 : +,addition ntt2 : -,subtracterntt3 : * multiplication ntt4 : /,divisionn msg1 : .asciiz first num: msg2 : .asciiz

10、 second num: addFlag : .asciiz + subFlag : .asciiz - mulFlag : .asciiz * divFlag : .asciiz / equalStr : .asciiz = newline : .asciiz n=n #sample example a small calculater.text # text section.globl main # call main by SPIMmain: la $t0, value # load address value into $t0 la $a0,msg0 li $v0,4 syscall

11、#print please choose the operation: li $v0, 5 syscall sw $v0, 8($t0) la $a0,msg1 li $v0,4 syscall #print first num: li $v0, 5 syscall sw $v0, 0($t0) la $a0,msg2 li $v0,4 syscall #print second num: li $v0, 5 syscall sw $v0, 4($t0) #read the other num la $a0,newline li $v0,4 syscall #print n lw $t1, 0

12、($t0) # load the first num lw $t2, 4($t0) # load the second num lw $t3, 8($t0) # load the operation 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 j printResultsubOp: sub $t4, $t1

13、, $t2 # $t1 - $t2 = $t4 sw $t4, 12($t0) la $t5,subFlag j printResultmulOp: mul $t4, $t1, $t2 # $t1 * $t2 = $t4 sw $t4, 12($t0) la $t5,mulFlag j printResultdivOp: div $t4, $t1, $t2 # $t1 / $t2 = $t4 sw $t4, 12($t0) la $t5,divFlag j printResult printResult: lw $a0,0($t0) li $v0,1 syscall #read first number la $a0,0($t5) li $v0,4 syscall #print opflag lw $a0,4($t0) li $v0,1 syscall #print second nu

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

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