我正在处理汇编语言类的代码,它接受用户输入并将其存储在内存中,然后再为用户打印出来。我不知道问题是什么,但是当我调用系统调用代码来读取用户输入时,它总是会跳过前2个字母。以下是我的代码。
.data
myname: .asciiz "Please Type Your Name:"
ram1: .word 4
ram2: .word 4
blank: .asciiz "\n"
.text
.globl main
main:
li $v0, 4 #loads the system call code to print a string
la $a0, myname
syscall
la $a0, ram1
li $a1, 20
li $v0, 8 #this is the opcode that reads a user input in the console
syscall
li $v0, 4 #loads the call code to print a string
la $a0, blank
andi $a1, $a1, 0
syscall
syscall
syscall
la $a0, myname
syscall
la $a0, ram1
syscall
据我所知,系统调用代码8需要2个参数才能正常运行,我添加了。任何见解将不胜感激!
干杯