所以我遇到了一些问题,我正在尝试读取 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
在我发布这篇文章后 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