コンテンツ(文字列と浮動小数点数)をファイルに出力したい。私がこれまで実施してきたものだファイルへのMips-プリント
:
.data:
line_break: .asciiz "\n"
buffer: .space 1024
.text:
main:
addi $t0, $zero, -1
jal open_file # open the file to write to
beq $v0, $t0, create_file # if return value -1 --> file not available --> create the file
move $s6, $v0 # save the file descriptor
[...]
ulw $t0, print_initiaton_message # save the print_initiaton_message in a temp
sw $t0, buffer # put print_initiaton_message on buffer
li $v0, 15 # syscall to write to file
move $a0, $s6 # move file descriptor to $a0
la $a1, buffer # target to write from
li $a2, 1024 # amount to be written
syscall # syscall to write in file
[...]
s.s $f12, buffer
li $v0, 15 # syscall to write to file
move $a0, $s3 # move file descriptor to $a0
la $a1, buffer # target to write from
li $a2, 4 # amount to be written
syscall # syscall to write in file
[...]
基本的な考え方は、バッファに必要な情報を入れることで、その後、システムコールを実行します。
ファイルが正しく作成されているため、後で開いたり閉じたりするため、動作しているようです。その中のコンテンツもありますが、期待される成果がありません。最初の位置で
’®)@
PÀ<@
[...]
は、浮動小数点に続く改行が続く文字列、、があるはずです。
私の質問: - 出力の適切な書式設定を実現するにはどうすればよいですか? - 入力がバッファサイズを超えた場合のバッファサイズとは何ですか? - 書き込む金額は何を意味していますか?
私は(すなわちthis one)いくつかのシステムコールの参照を通過しようとしたが、例(およびfound this、またはthat)を探したが、主な問題は、それらがコードのみを提供し、上記の私の質問をカバーしていないということです。
MIPS命令リファレンス([ここで利用可能](http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html))によれば、swは$ t0の内容を指定されたアドレス、バッファ私はpreviosサブプロシージャの出力をバッファに保存して、それを印刷できるようにしたいと思います。 –
バッファの出力はどのデータ型ですか?出力が文字列の場合は、文字列をバッファにコピーする必要があります。出力が単一の整数である場合、最初に整数を文字列としてフォーマットする必要があります。 – Zack
はい、下記の私の答えを参照してください。私は解決策を見つけた –