0

ユーザーが文字列を入力するプログラムを書いています。この文字列はデフォルトでレジスタ $v0 に格納されますが、$v0 内のデータを String ラベルにコピーして、プログラムで $v0 を他の目的に使用してもユーザー入力が破損しないようにしたいと考えています。私はそれを行う方法を理解します。誰かが私にそれを行う方法を教えてくれたら、とてもうれしいです。

よろしく

4

1 に答える 1

0

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
于 2012-10-04T18:07:09.370 に答える