0

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

乾杯

4

0 に答える 0