2011-02-09 9 views
3

DOS環境またはWindows環境でアセンブリ言語コードまたはCコードをアセンブル、リンク、ロードする場合、どのように重要ですか?同じになるべきではありませんか?すべての実行がオペレーティングシステムではなくマイクロプロセッサによって行われた後。私はMS-DOS時代の古い本からアセンブリ言語を学んでいます。それは後退ですか? O/Sに依存しないアセンブリ言語とそのコードの実行は何ですか?それとも他の言語で書かれたコードですか?オペレーティングシステムは抽象化されていますか?

答えて

7

は、アセンブリ言語ではなく、そのコードの実行、O/S独立?それとも他の言語で書かれたコードですか?

はい、いいえ。

はい。マシンの言語はOSに依存しません。あなたがそれを自分で書いたのか、Cコンパイラが書いたのかは関係ありません。

いいえ実際にソフトウェアを実行するには、OSを使用する必要があります。 便利なを実行したい場合は、OS APIを呼び出す必要があります。それはまったくOSに依存します。

+0

@ Sottこれで、ソフトウェアの実行におけるOSの役割は?それをメモリにコピーし、メモリセグメントを割り当て、最初の命令アドレスをIPにコピーしますか?しかし、このすべてを行うには、ソフトウェアがアセンブリプログラムかCかどうかはどうですか?私が尋ねることは、OSの場合、実行可能ファイルはどの言語に書かれていても、どのコンパイラでコンパイルされていても実行可能なファイルであるということです。 – KawaiKx

+1

@Saurabh: "ソフトウェアがアセンブリプログラムかCであればどうですか?" (1)それは問題ではありません。(2)あなたの質問が求めるものではありません。あなたの質問が正しくない場合は、** **アップデート**してください。 –

0

はい、オペレーティングシステムは、私たちのプログラムとプロセッサの間の通信を「標準化」するので、printf()はLinuxとWindows(およびその他)の両方で、それらのOSのさまざまなバージョンで、ハードウェア構成。
理論的にはは、異なるOSを使用して同じプロセッサで同じプログラムを実行することは可能ですが、オペコードは明らかに同じですが、これはお金の問題では起こりません(1日linuxはWindowsのアプリケーションを実行することができます..)。
バイナリを実行するかどうかは、プロセッサのみに依存するはずですが、OSによっても異なります。

関連する問題