你如何用 SPARC 程序集得到这个 C 的等价物:
printf( "Hello, my name is %s.\n", name );
使用函数原型:
void printName( const char* msg, const char* name )
其中 msg 是“你好,我的名字是 %s。\n”。
我知道我可以在没有第一个参数 msg 的情况下使用 .asciz 在数据段中定义“你好,我的名字是 %s。\n”,但是有没有办法将字符串传递给具有 % 的汇编函数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
也许我没有正确接近函数原型?