私は現在Trisquelディストリビューション(私はUbuntuをフードの下で使用していると思われますか?)でアセンブリを学習しようとしています。何らかの理由で、私はアセンブリスニペットを作成して実行する最初のステップに固執しています。私はまさにここで何が起こっているかわからないんだけど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
とuname
コマンドの出力です:
$ 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
誰かが間違ってここに起こっている正確に何を理解して私を助けることはできますか?ありがとう。
実行可能ビットは、右ですか? –
@Uku:そうでなければ、通常は「許可が拒否されました」というエラーが表示されます – sasuke
自分自身だと思っていますが、ただチェックしています。 –