ユーザー入力を取得してメモリに保存し、ユーザーのために再度出力するアセンブリ言語クラスのコードに取り組んでいます。何が問題なのかわかりませんが、システム コール コードを呼び出してユーザーの入力を読み取るたびに、常に最初の 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 つの引数が必要であることを理解しています。どんな洞察も大歓迎です!
乾杯