「ゼロからのプログラミング」という本でアセンブリについて学ぼうとしています。この本は 32 ビット命令のみをカバーしています。サンプル コードを 64 ビット Ubuntu システムで実行する方法はありますか? -m32
GNU アセンブラのマニュアル ページの内容は理解できませんが、フラグがそれを行うべきだと聞きました。しかし、それは認識されたオプションではありません。
本の例を簡単に動作させるにはどうすればよいですか?
「ゼロからのプログラミング」という本でアセンブリについて学ぼうとしています。この本は 32 ビット命令のみをカバーしています。サンプル コードを 64 ビット Ubuntu システムで実行する方法はありますか? -m32
GNU アセンブラのマニュアル ページの内容は理解できませんが、フラグがそれを行うべきだと聞きました。しかし、それは認識されたオプションではありません。
本の例を簡単に動作させるにはどうすればよいですか?
アセンブラとリンカが x86_64 バージョンの場合、i386 (32 ビット) 出力を生成するオプションは次のとおりです。
as --32
ld -m elf_i386
アセンブリ コードを使用しているという理由だけでas
andを使用する必要はありません。を使用でき、その場合は を使用します。ld
gcc
-m32
gcc -m32 -nostdlib myprog.s -o myprog
as manページから:
Target i386 options:
[--32|--n32|--64] [-n]
[-march=CPU[+EXTENSION...]] [-mtune=CPU]
それが機能するかどうかはわかりません。--32
またはを試してみてください--n32
。
(-m32
対応する gcc フラグを取得しているようです。)