OK、2 つのアセンブリ .s ファイルがあります。
最初の関数プロトタイプは
void printCharacter( char c )
その中で printf を呼び出して文字を印刷します
./global printCharacter
.section ".data"
format: .asciz "%c"
.section ".text"
printCharacter:
save %sp, -96, %sp
set format, %o0
mov %i0, %o1
call printf
nop
問題は、この関数を別のファイルから呼び出していることです。他のファイルでは、これを一番上に宣言しています
NewLine: .byte '\n'
そして、私はこのように使用します
set NewLine, %o0
call printCharacter
nop
私の他の関数「printCharacter」では、それが使用します
mov %i0, %o1
instead of
set %i0, %o1
since I use printCharacter function for normal characters
as well so I can't use set
ASCII 文字と、mov の代わりに「set」コマンドが必要な \n のようなものの両方に 1 つの関数を使用するにはどうすればよいですか?
現時点での問題は、新しい行を印刷しようとすると、? ターミナルで