ユーザーが文字列を入力するプログラムを書いています。この文字列はデフォルトでレジスタ $v0 に格納されますが、$v0 内のデータを String ラベルにコピーして、プログラムで $v0 を他の目的に使用してもユーザー入力が破損しないようにしたいと考えています。私はそれを行う方法を理解します。誰かが私にそれを行う方法を教えてくれたら、とてもうれしいです。
よろしく
Spimでは、ユーザーから文字列を読み取るサービスは service 8で、引数として次のように受け取ります。
$a0
: 文字列が書き込まれるバッファへのポインタ$a1
: バッファのサイズsyscallが返されると、バッファーは入力テキスト (最大$a1
バイト数まで) で上書きされ、$v0
影響を受けません
使用例:
.data
buffer: .space 128
.text
la $a0, buffer
li $a1, 128 # maximum number of bytes to be read
li $v0, 8
syscall