我试图在64位GNU中创建一个文件夹,如下所示:
newstring
此代码有效,但我宁愿使用" int 0x80"来实现它。打电话,但我似乎无法让它发挥作用,我已经尝试过这样:
.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"
然而,即使我使用64位寄存器,它也不起作用。
另外我怎么能把这个代码翻译成32位? (最好使用int 0x80)
答案 0 :(得分:0)
在64位语法中,你必须使用这样的系统调用:
mov $folder, %rdi
mov $0777, %rsi
mov $83, %rax
syscall
在32位中你要做的就是用32位替换寄存器并使用int 0x80
而不是syscall