amd64使用系统调用比一个不同的方法
int 0x80,但可能仍然与32位库工作装等。而对
x86一个会做:
mov eax, SYSCALL_NUMBERmov ebx, param1mov ecx, param2mov edx, param3int 0x80
在
amd64一个反而会做到这一点:
mov rax, SYSCALL_NUMBER_64 ; different from the x86 equivalent, usuallymov rdi, param1mov rsi, param2mov rdx, param3syscall
对于您想要做的事情,请考虑以下示例:
bits 64 global _startsection .text_start: push 0x0a424242 mov rdx, 04h lea rsi, [rsp] call write call exitexit: mov rax, 60 ; exit() xor rdi, rdi ; errno syscallwrite: mov rax, 1 ; write() mov rdi, 1 ; stdout syscall ret
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)