2

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 つの関数を使用するにはどうすればよいですか?

現時点での問題は、新しい行を印刷しようとすると、? ターミナルで

4

0 に答える 0