この C に相当するものを SPARC アセンブリで取得するにはどうすればよいですか。
printf( "Hello, my name is %s.\n", name );
関数プロトタイプの使用:
void printName( const char* msg, const char* name )
ここで、msg は「こんにちは、私の名前は %s です。\n」です。
最初の引数 msg を使用せずに .asciz を使用してデータ セグメントで "Hello, my name is %s.\n" を定義できることはわかっていますが、% を持つアセンブリ関数に文字列を渡す方法はありますか?その中の識別子?char* はフォーマット識別子を取り込めますか? 以下を試しましたが、コアダンプが発生します。
C での関数呼び出し:
char * msg = "Hello, my name is %s.\n";
char * name = "Foo";
printName( msg, name );
組み立て:
mov %i0, %o0
mov %i1, %o1
call printf, 2
nop
関数プロトタイプに正しくアプローチしていないのでしょうか?