[汇编语言学习开始了]
代码如下:
经过了PCspim模拟器的检验,没有问题的代码
写汇编的语句都是写了很多的注释的,不用担心看不懂。
(要是不写,自己都可能看不懂)
.text
.globl main
main:
add $t1 $zero $zero # t1 设置为0 当t1 == t2的时候结束循环, 用于计数
addi $t2 $zero 10 # 将t2的值设置为10,便于比较
la $t3 value # 装载,将t3上放有value的值,就是基准地址
add $t4 $zero $zero # 将偏移量t4 设置为0
Loop:
li $v0 5 # 调用了输入命令 5 装载到$v0上
syscall # 系统调用
add $t5 $t4 $t3 # 将基准地址 $3 加上偏移量 $4
sw $v0 0($t5) # 将$vo中的数放到t5对应的地址中
add $t1 $t1 1 # 对计数的$t1 加一
beq $t1 $t2 Exit # 如果$t1 == $t2 就是说输入了10个数 那么就跳出循环
addi $t4 $t4 4 # 偏移量数值提高4个位置
j Loop # 跳到新的循环
Exit: # 输入完成
add $t1 $zero $zero # t1 设置为0 当t1 == 10的时候结束循环, 用于计数
add $t4 $zero $zero # 偏移值设置为0
# 完成初始化,由于$t2没有修改过,所以不初始化
Loop1:
add $t5 $t4 $t3 # 将基准地址 $3 加上偏移量 $4 得到当前地址
lw $a0 0($t5)
li $v0 1
syscall
la $a0 str # 输出空格
li $v0 4
syscall
add $t1 $t1 1 # 对计数的$t1 加一
beq $t1 $t2 Exit1 # 如果$t1 == $t2 就是说输入了10个数 那么就跳出循环
addi $t4 $t4 4 # 偏移量数值提高4个位置
j Loop1 # 跳到新的循环
Exit1:
li $v0 10 # 退出
syscall
.data
str:
.ascii " "
value:
.word 0,0,0
最后,老套路,宣传一波自己的公众号!(求关注哇!)
本人中大一肥宅,欢迎大家关注,请扫下面的二维码(〃’▽’〃)
如果觉得有帮助的话,可以扫码,赞赏鼓励一下!谢谢!