したがって、プロセッサには、所定の命令であるオン/オフを切り替えるクロックがあります。これらの命令はどのようにプロセッサに命令としてロードされますか?私はちょうどCPUできれいなスレートを視覚化しています。どのように教えるか、CPUに何をするかを教えてください。命令はどのようにプロセッサおよびコンピュータのボードに埋め込まれているか
また、私たちがクリーンスレートであれば、バイナリを認識するためにどのようにデータをコンピュータにロードするのですか?
私は
したがって、プロセッサには、所定の命令であるオン/オフを切り替えるクロックがあります。これらの命令はどのようにプロセッサに命令としてロードされますか?私はちょうどCPUできれいなスレートを視覚化しています。どのように教えるか、CPUに何をするかを教えてください。命令はどのようにプロセッサおよびコンピュータのボードに埋め込まれているか
また、私たちがクリーンスレートであれば、バイナリを認識するためにどのようにデータをコンピュータにロードするのですか?
私は
リセットベクトルとして知られているハードワイヤードアドレスから命令の実行が開始されます。命令はメモリにプログラムされています。それが行われる手段は、使用されるメモリテクノロジとプロセッサのタイプによって異なります。例えば、これはBIOSである - ないオンチップメモリを有するスタンドアロンのCPUについて
、初期コードは、通常、しばしばBOOTROMと呼ばれる外部読み取り専用ランダム・アクセス・メモリ(ROM)のいくつかの種類になりますPCマザーボード上で現代のプラットフォームでは、これらのROMは通常、専用のプログラマまたはインサーキット上にロードすることによって電気的に消去および再プログラミングすることができるNORフラッシュという技術を使用します(たとえば、PCは独自のBIOSフラッシュを書き換えることができます)。オンチップ・メモリとマイクロコントローラ(MCU)について
、これらは多くの場合、内蔵フラッシュROMを有し、また、電気的(プロプライエタリJTAGインタフェースとして知られているオンチッププログラミングおよびデバッグインタフェースを使用して、典型的にプログラムすることができますインタフェースは一部のデバイスにも存在します)。一部のMCUには、マスクROMが含まれています。この書き換え可能なデバイスには、単純なブートローダ(プライマリ)が含まれています。通常、MCUの起動方法を選択できます。
ブートローダーの仕事は、より複雑なコードをメモリ(電気的にプログラム可能なROMまたはRAM)にロードして実行することです。多くの場合、マスクROMの主なブートローダーはシンプルであり、非常に制限されており、より完全なブートローダーをロードしてからOSをロードします。例えば、一般的なシナリオは、プロセッサが、NANDフラッシュまたはSDカードのような単純な非ランダムアクセスメモリからコードをロードする一次ブートローダを有することである。これは、例えば、通常はLinuxをロードするために使用されるUBOOTのような、より完全な機能を備えたブートローダをロードすることができます。このブートローダは、ハードディスク、ネットワーク、CD、USBなどのより複雑なデバイスのブートソースをサポートできます。
は、一般的にCPUのアドレスゼロまたは0xFFFF-(アドレス長-1)のいずれかを読み取るために使用あなたの場合(Fさんを追加します。これは、質問の過負荷であれば、私はちょうどスーパー興味ごめんなさいアドレスルームが大きい)、それをブートローダの開始アドレスとしてください。
また、CPUがマイクロコードをCPUにロードして起動し、所定のアドレスから実際のアセンブラコードを起動する可能性もあります。
あなたの質問はあまりにも広すぎます。そして、あなたはそれについて簡単に研究することができます。そして、ヒント:ハードウェアで**インプリメンテーション**を行うことができます。 CPUにハードワイヤード接続されている**命令をロードする必要はありません。多くのリンクの1つは、https://en.wikipedia.org/wiki/Booting – GhostCat
で始まります。 – mrprogrammer231