我试图在64位GNU中创建一个文件夹,如下所示:
.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”调用来实现它,但是我似乎无法让它工作,我尝试过这样做:
mov $83, %eax
mov $folder, %ebx
mov $0777, %ecx
syscall但是它不工作,即使我使用64位寄存器。
另外,我如何将这段代码转换成32位呢?(最好使用int 0x80)
发布于 2015-05-07 07:47:52
在64位语法中,您必须使用syscall,如下所示:
mov $folder, %rdi
mov $0777, %rsi
mov $83, %rax
syscall32位中的int 0x80只需将寄存器替换为32位寄存器,并使用而不是 syscall
https://stackoverflow.com/questions/30094660
复制相似问题