我制作了这个简单的装配程序:
.text
.globl _start:
_start:
movl $1, %rax
movl $0, %rbx
int 0x80
我使用%eax和%ebx而不是%rax和%rbx的原始程序,因为它是32位。由于我的操作系统是64位Linux(不是作为虚拟机运行),我只是更换了寄存器。但这是我编译时会发生的事情:
ExitShellcode.s: Assembler messages:
ExitShellcode.s:6: Error: incorrect register `%rax' used with `l' suffix
ExitShellcode.s:7: Error: incorrect register `%rbx' used with `l' suffix
ExitShellcode.s:8: Error: operand size mismatch for `int'
我需要做什么?