12

「ゼロからのプログラミング」という本でアセンブリについて学ぼうとしています。この本は 32 ビット命令のみをカバーしています。サンプル コードを 64 ビット Ubuntu システムで実行する方法はありますか? -m32GNU アセンブラのマニュアル ページの内容は理解できませんが、フラグがそれを行うべきだと聞きました。しかし、それは認識されたオプションではありません。

本の例を簡単に動作させるにはどうすればよいですか?

4

3 に答える 3

22

アセンブラとリンカが x86_64 バージョンの場合、i386 (32 ビット) 出力を生成するオプションは次のとおりです。

as --32
ld -m elf_i386

アセンブリ コードを使用しているという理由だけでasandを使用する必要はありません。を使用でき、その場合は を使用します。ldgcc-m32

gcc -m32 -nostdlib myprog.s -o myprog
于 2013-08-25T15:03:20.043 に答える
3

as manページから:

   Target i386 options:
      [--32|--n32|--64] [-n]
      [-march=CPU[+EXTENSION...]] [-mtune=CPU]

それが機能するかどうかはわかりません。--32またはを試してみてください--n32

(-m32対応する gcc フラグを取得しているようです。)

于 2013-08-25T14:32:53.507 に答える