当前位置: 首页 > 面试题库 >

从x86_64 Linux中的嵌入式asm进行Syscall?

李谦
2023-03-14
问题内容

为什么打印此垃圾而不是正常退出程序?我在BSD上以这种方式使用系统调用,并且我想知道要使其在Linux中工作需要什么。

int
main(int argc, char **argv)
{
    __asm ("movq $1,%rax; movq $0,%rdi; syscall"); /* exit(0) ? */
    return 0;
}

谢谢。


问题答案:

为什么打印此垃圾而不是正常退出程序?

根据CESA-2009-001,“
Syscall 1在i386上退出但在x86_64上写入”。

我需要什么才能使其在Linux中工作

使用当前unistd_64.h中的syscall
顺序

希望这可以帮助!



 类似资料:
  • 我正在尝试将Spring身份验证与嵌入式ldap集成。 我在本地ldif文件中有用户信息。 用户1 用户2 Spring网络安全配置文件 配置文件中的userDnPattern我使用了ou=people(uid={0},ou=people),所以我可以对bob进行身份验证。说到乔,他的目录路径是不同的。所以我无法使用joe的用户名和密码登录。 无论目录结构如何,我对所有用户进行身份验证的Sprin

  • 是否可以在Spring Boot可执行jar中启动与声明的mainClass不同的Java类(使用main方法)? 特性:应该启动的类位于嵌入可执行jar(在lib文件夹中)的库中。 背景资料: 可执行jar包含一个库,其中包含一个类,我想调用该类以正常关闭应用程序。该库嵌入在可执行文件jars lib文件夹中,默认Java类路径参数无法访问该库。

  • 本文向大家介绍C# 通过 inline-asm 解决嵌入x86汇编,包括了C# 通过 inline-asm 解决嵌入x86汇编的使用技巧和注意事项,需要的朋友参考一下 "嵌入"是指什么?资源?注入进程?如果是嵌入资源,那跟嵌入任何其他内容是一样的,vs中只要拖拽就能完成嵌入资源。如果是注入进程,则必须得先将汇编码转为机器码。虽然托管的C#也是能办到,但这似乎是所有人都不推荐的方式。 C#可不可以嵌

  • 问题内容: 使用嵌入式h2数据源以及JUnit(可选),用于集成测试的Spring配置看起来如何? 我第一次尝试使用SingleConnectionDataSource基本上可以成功,但是在更复杂的测试中失败了,在该测试中您需要同时进行多个连接或暂停事务。我认为基于tcp的服务器模式下的 h2 可能也能正常工作,但这可能不是内存中临时嵌入式数据库最快的通信模式。 有哪些可能性及其优势/劣势?另外,

  • 我想得到一个关于如何在Java应用程序中沙箱执行Nashorn的明确答案。 我见过“类似的问题”(我将提及),但最终没有一个答案能够解决我的担忧。 让我从定义开始。 假设我们从这里开始: 我所说的“沙盒”是指确保JavaScript不得访问任何java对象,除了在范围中添加的对象。 所以下面的评估应该没问题。 但以下评估不会: 最后,我不担心这一点: 因此,通过沙盒,我打算阻止jsCode访问我没

  • 我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?