Как получить эквивалент этого C со сборкой SPARC:
printf( "Hello, my name is %s.\n", name );
с использованием прототипа функции:
void printName( const char* msg, const char* name )
где msg - "Здравствуйте, меня зовут% s. \ N".
Я знаю, что могу определить «Здравствуйте, меня зовут% s. \ N» в сегменте данных с .asciz без первого аргумента msg, но есть ли способ передать строку в функцию сборки, которая бы есть идентификатор% s в нем? Может ли 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
Может быть, я не правильно подхожу к прототипу функции?