本文介绍了在x86_64的Linux的内联汇编系统调用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么退出摆好我的程序的这个打印垃圾呢?我用的系统调用BSD这样了,我不知道我需要使它在Linux下正常工作。

  INT
主(INT ARGC,字符** argv的)
{
    __asm​​(MOVQ $ 1,RAX%; MOVQ $ 0%RDI;系统调用); / *退出(0)? * /
    返回0;
}

感谢。


解决方案

Per CESA-2009-001, "Syscall 1 is exit on i386 but write on x86_64".

Use the syscall ordinals from the current unistd_64.h

Hope this helps!

这篇关于在x86_64的Linux的内联汇编系统调用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-07 15:53