UBUNTU および G++ コンパイラを使用して gmp-5.0.0 im 用に作成されたプログラムの ASSEMBLY コードを見つけることができる場所..コードをコンパイルするためのコマンドは「g++ test.cc -o outp -lgmp」です。
実際、1 と 0 に関して内部で何が起こっているかを知りたいです...メモリ割り当てがどのように行われ、RAW ビットで操作がどのように実行されるかを知りたいです!!
gcc(1)
マニュアルページから:
-save-temps
Store the usual "temporary" intermediate files permanently; place
them in the current directory and name them based on the source
file. Thus, compiling foo.c with -c -save-temps would produce
files foo.i and foo.s, as well as foo.o. This creates a
preprocessed foo.i output file even though the compiler now
normally uses an integrated preprocessor.
-S
フラグを使用して、生成されたアセンブリ言語を取得できます。これには、使用するライブラリ関数などのために生成されたコードではなく、コード用に生成されたアセンブリがほとんど含まれることに注意してください。「ほとんど」は、インクルードしたヘッダーにインライン関数用に生成されたコードを含めることができる/含めるためです。
The code is written in C so you should look at the source code this will be a first step to understand the assembly code (usually it is enough to understand what happen with "raw bits"). There is some assembly inlined anyway
次に、gdb内でコードを実行し、disassemble
コマンドを使用して、非常に少数の特定のコードのアセンブリコードを確認し、それらを理解しようとすることができます.