8

私はプログラミング初心者でC++言語から始めたのですが、知る限りC++言語はC++コンパイラ(例:Visual Studio)によってアセンブリ言語に変換されますが、アセンブリ言語を機械語に変換するものを調べてみました。コンピューターによって理解され、実行されますが、答えを見つけることができませんでした。

問題は、アセンブリ言語がどこでどのように機械語に変換されるのかということです。OSに統合されたある種のコンパイラによるものですか?

前もって感謝します。

4

4 に答える 4

6

コンパイラが高レベル コードをアセンブリ言語に変換すると、次のようになります。

  • MOV AX、[A] ; # Aを動かして斧を登録
  • ADD AX, [B] ; # B を A に追加
  • IMUL AX; # スクエア(A+B)
  • MOV [C]、AX ;

アセンブラは、これらのアセンブリ命令を機械語に変換します。

アセンブリ命令は、次のような典型的な形式を持っています: オペコード オペランド [オペランド]

また、マイクロプロセッサのマニュアルを確認すると、各命令を 1001000 のようなバイナリ形式に変換する方法がわかります。オペコード用のビットとオペランド用のビットがあります。

http://www.mathemainzel.info/files/x86asmref.html

于 2015-07-08T03:26:13.230 に答える
0

アセンブリコードは、アセンブラと呼ばれるものを介して実行されるため、オブジェクト/マシンコードへの変換に同様のプロセスがあります(指定された例のコンパイラに似ています)。

于 2014-07-25T04:46:36.127 に答える