현재 Trisquel 배포판에서 어셈블리를 배우려고합니다. (우분투는 우분투에서 사용하는 것 같습니다.) 웬일인지, 나는 어셈블리 스 니펫을 만들고 실행하는 첫 걸음에 붙어있다. 내가 정확히 여기 무슨 일이 일어나고 있는지 확실하지 않다bash는 바이너리 파일을 실행할 수 없습니다.
> as myexit.s -o myexit.o && ld myexit.o -o myexit
> ./myexit
bash: ./myexit: cannot execute binary file
:
.section data
.section text
.globl _start
_start:
movl $1, %eax # syscall for exiting a program
movl $0, %ebx # status code to be returned
int $0x80
내가 조립하고 실행 파일을 만들기 위해 그것을 연결하고 실행 파일을 실행하려고
, 내가 뭔가를 얻을. 주위를 검색 한 후,이 오류는 대개 64 비트 OS에서 32 비트 실행 파일을 실행하려고 시도 할 때 발생하거나 또는 그 반대 일 수 있습니다. 이$ file myexit
myexit: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped
$ uname -a
Linux user 2.6.35-28-generiC#50trisquel2-Ubuntu SMP Tue May 3 00:54:52 UTC 2011 i686 GNU/Linux
사람이 정확히 잘못 여기에 무슨 일이 일어나고 있는지 이해 나를 도울 수 : 여기
는file
의 출력과
uname
명령입니다? 감사.
실행 비트가 거기에 있습니까? –
@Uku : 그렇습니다. 그렇지 않으면 정상적으로'permission denied' 오류가 발생합니다. – sasuke
내 생각에 그냥 확인 만합니다. –