首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >煤气系统呼叫

煤气系统呼叫
EN

Stack Overflow用户
提问于 2015-05-07 07:35:15
回答 1查看 695关注 0票数 0

我试图在64位GNU中创建一个文件夹,如下所示:

代码语言:javascript
运行
复制
.global main

.text
main:
    movl $83, %edi      # SYS_mkdir
    movl $folder, %esi  # folder_name
    movl $0777, %edx    # flags
    call syscall

    ret                 # exit
folder: .string "folder"

这段代码可以工作,但是我宁愿使用“int0x80”调用来实现它,但是我似乎无法让它工作,我尝试过这样做:

代码语言:javascript
运行
复制
mov $83, %eax
mov $folder, %ebx
mov $0777, %ecx
syscall

但是它不工作,即使我使用64位寄存器。

另外,我如何将这段代码转换成32位呢?(最好使用int 0x80)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-07 07:47:52

在64位语法中,您必须使用syscall,如下所示:

代码语言:javascript
运行
复制
mov $folder, %rdi
mov $0777, %rsi
mov $83, %rax
syscall

32位中的int 0x80只需将寄存器替换为32位寄存器,并使用而不是 syscall

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30094660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档