如何在MIPS_o32汇编中读取用户输入

问题描述 投票:0回答:1

所以我遇到了一些问题,我正在尝试读取 MIPS_o32 程序集中的用户输入。我已经让它读取用户输入,但我还没有弄清楚如何存储它,我看过人们只是获取 $v0 并将其存储在 $s0 中的视频,但我认为他们都使用不同版本的 MIPS。到目前为止我的代码如下。

.section .text

.global __start

__start:
    ; STDIN = 0
    ; STDOUT = 1
    ; STDERR = 2
    
    li $v0, 4003
    li $a0, 0
    la $a1, $v0 ; stuck here
    li $a2, 4
    syscall

    li $v0, 4001
    li $a0, 0
    syscall

.data

msg: .asciz "Input Number: \n"

out: .asciz "Your number is: \n"

任何帮助或资源助手将不胜感激!

我正在使用的资源: https://syscalls.w3challs.com/?arch=mips_o32 https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00565-2B-MIPS32-QRC-01.01.pdf https://mathcs.holycross.edu/~csci226/MIPS/summaryHO.pdf

assembly user-input mips32
1个回答
0
投票

在我发布这篇文章后 3 秒,我找到了答案,我可以创建:

var1: .space 3

在.data部分,如果有更有效的方法,请告诉我。

所以我有

.section .text

.global __start

__start:
    ; STDIN = 0
    ; STDOUT = 1
    ; STDERR = 2
    

    li $v0, 4004
    li $a0, 1
    la $a1, msg
    li $a2, 15
    syscall

    li $v0, 4003
    li $a0, 0
    la $a1, var1
    li $a2, 3
    syscall

    move $s0, $a1
    
    li $v0, 4004
    li $a0, 1
    la $a1, out
    li $a2, 17
    syscall
    
    li $v0, 4004
    li $a0, 1
    move $a1, $s0
    li $a2, 3
    syscall

    li $v0, 4001
    li $a0, 0
    syscall

.data

msg: .asciz "Input Number: \n"

out: .asciz "Your number is: \n"

var1: .space 3
© www.soinside.com 2019 - 2024. All rights reserved.