[MIPS汇编语言]输入输出演示(数组)

输入输出显示
用数组存储
代码如下:有详细的注释讲解

.text 
.globl main
main:
    la $t6,array         # 将数组地址其实地址放到 t6位置上
    move $t7 $zero       # 用于计数 控制输入
    addi $t8 $zero 10
input:
    la $a0 input_msg     # 将输入信息放到a0 这个寄存器上
    li $v0 4             # 将命令符寄存器中放入立即数4 用于字符输出
    syscall              # 输入提示符的输入完成

    li $v0 5             # 调用了输入命令 5 装载到$v0上
    syscall              # 系统调用 输入的数被放到了v0上

    move $t0 $t7         # 将临时的计数寄存器中的内容放到临时寄存器t0上
    mul $t0 $t0 4        # 得到了在该点的地址偏移值
    addu $t0 $t0 $t6      # 将数组地址加上了偏移量t0,得到当前地址 
    sw $v0 0($t0)        # 将$vo中的数放到t0对应的地址中

    addi $t7 $t7 1       # 对计数的$t7进行加一操作
    blt $t7 $t8 input    # 如果不相等,就循环该进程


output: 
    move $t7 $zero       # 用于计数 控制输入
    addi $t8 $zero 10    # 总共有10个数
print_all:
    move $t0,$t7         # 将 t7的数放到这个临时的t0上
    mul $t0,$t0,4        # 得到偏移量
    addu $t0,$t0,$t6     # 这里使用add也是一样的 只是add 会检验下溢出问题
    lw $a0,0($t0)        # 所得到的地址的的数 load到 a0上
    li $v0,1  
    syscall  
    addi $t7,$t7,1  
    blt $t7,$t8,print_all  

    li $v0 10            # 退出 
    syscall
.data 
    array:
        .space 1024      # 开辟数组空间 
    input_msg:
        .ascii "Input number: " # 输入数字提示符
    space_str:
        .ascii " "       # 输出空格信息

最后,老套路,宣传一波自己的公众号!(求关注哇!)
本人中大一肥宅,欢迎大家关注,请扫下面的二维码(〃’▽’〃)


二维码

如果觉得有帮助的话,可以扫码,赞赏鼓励一下!谢谢!


这里写图片描述

猜你喜欢

转载自blog.csdn.net/a19990412/article/details/78231780
今日推荐