工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

マイクロプロセッサプログラミング

特定のマイクロプロセッサチップが持つ命令の「語彙」は、そのチップのモデルに固有のものです。たとえば、Intel 80386は、同等の機能を指定するために、Motorola68020とはまったく異なるバイナリコードのセットを使用します。

残念ながら、マイクロプロセッサ命令の標準はありません。これにより、非常に低いレベルでのプログラミングが非常に混乱し、専門化されます。

人間のプログラマーがマイクロプロセッサに何かを行う方法(エンジンへの燃料噴射率を自動的に制御するなど)を直接指示する一連の命令を開発するとき、彼らはCPU独自の「言語」でプログラミングしています。この言語は、CPUチップ内のコントロールユニットがタスクを実行するためにデコードするのとまったく同じバイナリコードで構成されており、多くの場合、機械語と呼ばれます。 。

機械語ソフトウェアは2進表記で「言葉遣い」することができますが、人間が扱いやすいため、16進形式で書かれることがよくあります。たとえば、Intel8080マイクロプロセッサチップの一般的な命令コードのほんの一部を紹介します。

 16進バイナリ命令の説明 ----------- -------- ------------------------------- ---------- | 7B01111011レジスタAの内容をレジスタEに移動します | | 8710000111レジスタAの内容をレジスタDに追加します | | 1C00011100レジスタEの内容を1インクリメントします | | D311010011データのバイトをデータバスに出力 

16進表記でも、これらの指示は簡単に混乱して忘れられる可能性があります。この目的のために、アセンブリ言語と呼ばれるプログラマー向けの別の支援が存在します。 。

アセンブリ言語では、プログラムのステップを説明するために、実際の16進コードまたはバイナリコードの代わりに2〜4文字のニーモニックワードが使用されます。たとえば、命令 7B Intel 8080の場合、「 MOV A、E 」になります。 」をアセンブリ言語で使用します。

もちろん、ニーモニックは、バイナリコードしか理解できないマイクロプロセッサには役に立ちませんが、プログラマが紙やテキストエディタ(ワードプロセッサ)でプログラムの書き込みを管理するのに便利な方法です。 アセンブラと呼ばれるコンピュータ用に作成されたプログラムもあります。 これらのニーモニックを理解し、指定されたターゲットマイクロプロセッサの適切なバイナリコードに変換します。これにより、プログラマは、奇妙な16進数や面倒なバイナリコード表記を処理することなく、コンピュータのネイティブ言語でプログラムを記述できます。

プログラムが人によって開発されたら、マイクロプロセッサがそれを実行する前に、それをメモリに書き込む必要があります。プログラムをROMに保存する場合(一部はROMに保存されます)、これは ROMプログラマーと呼ばれる特別なマシンを使用して実行できます。 、または(マゾヒスティックな場合)、ROMチップをブレッドボードに接続し、適切な電圧で電源を入れ、アドレスとデータラインにそれぞれ1つずつ適切な配線接続を行うことでデータを書き込みます。指示。

プログラムをオペレーティングコンピュータのRAMメモリなどの揮発性メモリに保存する場合は、そのコンピュータのキーボードから手動で入力する方法がある場合があります(一部のコンピュータには、マイクロプロセッサに方法を指示するミニプログラムがROMに保存されていますキーボードからのキーストロークを受け入れ、それらをコマンドとしてRAMに保存するため)、他のことを行うにはあまりにも馬鹿げている場合でも。

多くの「趣味」のコンピュータキットはこのように機能します。プログラムするコンピュータが、オペレーティングシステム、ディスクドライブ、およびすべてが機能する完全に機能するパーソナルコンピュータである場合は、完成したプログラムを後で取得できるようにディスクに保存するようにアセンブラに命令するだけです。

プログラムを「実行」するには、プロンプトでプログラムのファイル名を入力し、Enterキーを押すだけで、マイクロプロセッサのプログラムカウンタレジスタが、最初の命令があるディスク上の場所(「アドレス」)を指すように設定されます。保存すると、プログラムはそこから実行されます。

機械語またはアセンブリ言語でのプログラミングは、高速で非常に効率的なプログラムになりますが、各機械語の命令は非常に粗雑であるため、最も単純なタスク以外の場合は、多くの時間とスキルが必要です。これに対する答えは、プログラマーが人間の思考をより効率的に表現できる「高級」言語で書く方法を開発することです。数十の不可解なアセンブリ言語コードを入力する代わりに、高級言語で書くプログラマーはこのようなものを書くことができます。 。 。

「Hello、world!」を印刷します

。 。 。コンピュータが「Hello、world!」と出力することを期待します。その方法についてはこれ以上の指示はありません。これは素晴らしいアイデアですが、語彙が非常に限られている場合、マイクロプロセッサはそのような「人間の」思考をどのように理解しますか?

答えは2つの異なる形式で提供されます:解釈 、またはコンパイル 。 2人が異なる言語を話すように、会話するには言語の壁を超える方法が必要です。

各人の言葉を他の人の言語に一度に一方向に翻訳するには、翻訳者が必要です。マイクロプロセッサの場合、これは、別のプログラマが機械語で記述した別のプログラムを意味します。このプログラムは、印刷(印刷)などの高水準コマンドのASCII文字パターンを認識し、マイクロプロセッサが直接実行できる必要な一口サイズのステップに変換できます。理解してください。

この翻訳がプログラムの実行中に行われる場合、実際の会話で2人の間に翻訳者が介入するように、これは「解釈」と呼ばれます。一方、翻訳者が紙に独白を録音し、一度にすべての単語を他の言語の文書に翻訳するように、プログラム全体が一挙に機械語に翻訳される場合、そのプロセスは「コンパイル。」

解釈は簡単ですが、マイクロプロセッサがステップ間でプログラムを継続的に変換する必要があり、それには時間がかかるため、実行速度の遅いプログラムになります。コンパイルは、最初はプログラム全体をマシンコードに変換するのに時間がかかりますが、結果のマシンコードはその後変換する必要がなく、結果としてより高速に実行されます。

BASICやFORTHなどのプログラミング言語が解釈されます。 C、C ++、FORTRAN、PASCALなどの言語がコンパイルされます。コンパイルされた言語は、最終製品の効率性から、一般的にプロのプログラマーが選択する言語と見なされています。

当然、機械語の語彙はマイクロプロセッサごとに大きく異なり、高級言語は可能な限り普遍的に設計されているため、言語翻訳に必要な解釈およびコンパイルプログラムはマイクロプロセッサ固有である必要があります。

これらのインタプリタとコンパイラの開発は最も印象的な偉業です。これらのプログラムを作成する人々は、特に、市場に登場する急速に変化するマイクロプロセッサモデルでソフトウェア製品を最新の状態に保つために必要な作業を考えると、確実に維持されます。 !

この問題を軽減するために、マイクロプロセッサチップのトレンドを設定するメーカー(特にIntelとMotorola)は、新製品を下位互換性になるように設計しようとしています。 彼らの古い製品で。たとえば、Intel 80386チップの命令セット全体は、最新のPentium IVチップに含まれていますが、Pentiumチップには、80386チップにはない追加の命令があります。

つまり、80386コンピュータ用に作成された機械語プログラム(コンパイラも)は最新かつ最高のIntel Pentium IV CPUで実行されますが、Pentiumのより大きな命令セットを利用するために特別に作成された機械語プログラムは実行されません。 80386、古いCPUは単にその語彙にそれらの命令のいくつかを持っていないので:80386内のコントロールユニットはそれらをデコードすることができません。

このテーマに基づいて、ほとんどのコンパイラには、プログラマが機械語コードをコンパイルするCPUタイプを選択できる設定があります。彼らが80386設定を選択した場合、コンパイラは80386チップに認識されている命令のみを使用して変換を実行します。彼らがPentium設定を選択した場合、コンパイラはPentiumに知られているすべての命令を自由に利用できます。

これは、翻訳者に視聴者の最低読解レベルを伝えることに似ています。子供向けに翻訳されたドキュメントは大人には理解できますが、大人向けに翻訳されたドキュメントは子供にとってはぎこちないものになる可能性があります。

関連ワークシート:


産業技術

  1. 10の最もクールなクラウドプログラミング言語
  2. C プログラミング演算子
  3. C プログラミング言語 PDF:初心者向けの基本チュートリアル
  4. Bosque:ループのないMicrosoftの新しいプログラミング言語
  5. 2021年に学ぶべき9つの新しいプログラミング言語
  6. C チュートリアル
  7. C言語 - 概要
  8. C - プログラム構造
  9. C# - 概要
  10. ハイデンハインがオンラインCNCトレーニングプログラムをリリース
  11. 空欄を埋める CNC プログラミング フライス加工の演習