$ file as1 as1:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),静态链接,未剥离
$ file / bin / ls / bin / ls:ELF 32位LSB可执行文件,Intel 80386,版本1(SYSV),动态链接(使用共享库),用于GNU / Linux 2.6.15,剥离
我如何运行二进制文件?
代码:
SECTION .data
msg1 db "HELLO WORLD !!!",0ah ;msg to be print
msg1len equ $-msg1
SECTION .bss
SECTION .text
GLOBAL _start
_start:
mov rax,1 ;system read call
mov rdi,1
mov rsi,msg1
mov rdx,msg1len
syscall
mov eax,60 ;system end call
mov edi,0
syscall
答案 0 :(得分:0)
我假设as1是你编译的汇编文件。您似乎根据file /bin/ls
的结果运行32位系统。您可以使用uname -m
确认您有32位内核。在这种情况下,由于您似乎使用64位寄存器rax
而无法运行程序...
您可以设置64位系统,也可以重写程序只使用32位。