2012-03-17 6 views
0

プログラムはマシンコードの状態を通知しますか?アセンブラ/コンパイラは、高水準コードまたはアセンブリコードを機械命令に変換します。この段階で、機械命令は依然としてソフトウェア形式であり、メモリに常駐する。このコードは物理的な電気信号に変換され、ハードウェアでどのように処理されますか?何らかのインタフェースデバイスがある場合、どのように変換を行うのか知りたいと思います。ソフトウェアは実際のハードウェア信号にどの段階で変換されますか?

+1

筋肉と指がキーボードのキーに触れるときから、ソースコードが電気信号になります。コンパイルと実行を続けます。 PetzoldのCodeという本がありますが、興味深いかもしれません。 –

+0

@dwelch:ありがとう。これが私が探していたもので、コードが電気信号になる正確な瞬間です。あなたが答えとして書くことができれば、私はそれを受け入れるでしょう。 –

答えて

5

筋肉と指がキーボードのキーに触れるときから、ソースコードが電気信号になります。コンパイルと実行を続けます。 PetzoldのCodeという本がありますが、興味深いかもしれません。

2

ソフトウェア命令がハードウェア命令に変換される瞬間はありません。高レベルプログラミング言語のコードを低レベルプログラミング言語に変換するプロセスさえ、その下のハードウェアによって行われます。

生成されたマシンコードは、マシンコードを実行するすべてのコンピュータで実行されるため、実行するように依頼することと変わりありません。バイナリ実行可能ファイルが作成されると、コンピュータはメモリ内のどこにあるのかを知るだけで、実行を開始できます。

4

メモリは物理的です。メモリデバイスは、次の命令のためにプロセッサによって照会される。プロセッサがメモリ位置のアドレスを選択する32本の実際のワイヤ上の高電圧または低電圧を設定することに応答して、メモリは、代わりに、32本のワイヤのセットに高電圧または低電圧を供給するように設計されています。これらのワイヤはデータバスと呼ばれ、高電圧状態または低電圧状態がサンプリングされ、命令キャッシュと呼ばれるより小さなメモリに配置されるプロセッサに戻されます。メモリから読み取られた値は、機械コードと呼ばれる数学的表現の物理的表現です。

そこから、処理はデジタルロジックの形で続きます。数学や記号として表現することもできますが、実際の物理的表現は入力を高電圧または低電圧として検出し、回路の他の部分に高電圧または低電圧で応答する論理回路です。タイミングは、それらの信号のいくつかを非常に規則的な時間間隔でハイまたはローに振動させることによって制御される。

2

Dwelchが正しいです。キーボード(またはマウスまたはタッチスクリーン)に触れる瞬間。コンピュータ内部のソフトウェアは、ラッチ/フリップフロップ(トランジスタ化回路)の使用による電圧の記憶に過ぎない。キーボード(Cのような高水準言語やアセンブラのような低レベルは関係ありません)を使用してコードを入力すると、電気信号(電圧)として入力されています。しかし、モニター上に表示されるのは、英語や英語のようなテキスト(世界のすべての言語)の電圧の表現です。

テキストは電気信号に変換されません。ソフトウェアはすでにその形式(電圧)であり、それ以外の方法ではありません。

+0

私はこのソフトウェアがここでは「電圧」の形であるとは言いません。ビットは必ず「電圧」として記憶されますが、より多くの場合、磁気電荷として光学的に記憶されます。 – mata

+0

あなたは正しいです – Rajiv

関連する問題