MIPS汇编(1)程序解析

常见指令: 

结束程序:
li $v0, 10
syscall
________________________________

打印字符串:
li $v0, 4
la $a0, [name]
syscall
________________________________

打印整数:
li $v0, 1
lw $a0, [name]	# 来源:数据段
move $a0, $t0	# 来源:寄存器
syscall
________________________________

输入整数并转存:
li $v0, 5
syscall
move $[xx], $v0

 一个简单的循环,输出 1+2+3+...+n。

.text
li  $v0,5
syscall                 # 输入一个整数,输入的数存到 $v0 中
move $s0, $v0           # 赋值,$s0 = $v0
li  $s1, 0              # $s1 用于存储累加的值,$s1 = 0
li  $t0, 1              # $t0 是循环变量

loop:
bgt $t0, $s0, loop_end  # 这里用了一个扩展指令 bgt,当 $t0 > $s0 的时候跳转到 loop_end
add $s1, $s1, $t0       # $s1 = $s1 + $t0
addi $t0, $t0, 1        # $t0 = $t0 + 1
j   loop                # 无条件跳转到 loop 标签

loop_end:
move $a0, $s1           # 赋值,$a0 = $s1
li  $v0, 1              # $v0 = 1,在 syscall 中会输出 $a0 的值
syscall         

li  $v0,10              # $v0 = 10
syscall                 # 结束程序          

一维数组:

.data
array: .space 40           # 存储这些数需要用到数组,数组需要使用 10 * 4 = 40 字节
                           # 一个 int 整数需要占用 4 个字节,需要存储 10 个 int 整数
                           # 因此,array[0] 的地址为 0x00,array[1] 的地址为 0x04
                           # array[2] 的地址为 0x08,以此
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值