0
この質問は、投稿されたこの質問に接線方向で関連しています。Why isn't syscall working for MIPSscanfをMIPSで使用する
MIPSアセンブリでscanfを使用して、コマンドラインからユーザー入力を読み取ろうとしています。私はa.outファイルを実行すると、私はセグメンテーション違反を得る
.option pic0
.rdata # read-only data
.align 2
fromatInt:
.asciz "%d"
.asciz "%c"
.align 2
resultFormat:
.asciz "(%d/%u)\n"
.text
.align 2
scanFormat:
.word 1
.text
.align 2
.global print
print:
addiu $sp, $sp, -4
sw $ra, ($sp)
move $a1, $a0
la $a0, resultFormat
jal printf
move $a0, $a1
lw $ra, ($sp)
addiu $sp, $sp, +4
jr $ra
.global main
main:
la $a0, fromatInt
la $a1, scanFormat
jal scanf
lw $s0, scanFormat
move $a0, $s0
jal print
jal exit
:
は、ここに私のコードです。それ以外の場合は私が印刷してスキャンするシステムコールを使用することになり、私たちは本当のMIPSプロセッサを使用している
Program received signal SIGSEGV, Segmentation fault.
0x77e821b0 in _IO_vfscanf_internal (s=0x77fa5bc0 <_IO_2_1_stdin_>,
format=<optimized out>, argptr=0x7fff6614, errp=0x0) at vfscanf.c:1826
1826 vfscanf.c: No such file or directory.
:私は、GDBを実行したときと、これがステップスルー時に私が得る結果です。私はまた、それを効果的に使用するのに十分なLinuxカーネルのシステムを理解していません。どんな助けでも大歓迎です。
おかげでスペースを使用することができ、それが働きました! – MuffinMan1042