如何使用没有Glibc的C中的内联汇编来获取参数值?
我需要这个代码用于Linuxarchecture x86_64和i386.如果你知道MAC OS X或者Windows,也提交并请指导.
void exit(int code)
{
//This function not important!
//...
}
void _start()
{
//How Get arguments value using inline assembly
//in C without Glibc?
//argc
//argv
exit(0);
}
Run Code Online (Sandbox Code Playgroud)
https://gist.github.com/apsun/deccca33244471c1849d29cc6bb5c78e
和
#define ReadRdi(To) asm("movq %%rdi,%0" : "=r"(To));
#define ReadRsi(To) asm("movq %%rsi,%0" : "=r"(To));
long argcL;
long argvL;
ReadRdi(argcL);
ReadRsi(argvL);
int argc = (int) argcL;
//char **argv = (char **) argvL;
exit(argc);
Run Code Online (Sandbox Code Playgroud)
但它仍然返回0.所以这段代码错了!请帮忙.