はじめに

 携帯電話や自動車,家電製品など,われわれが身近に接する機器はほとんどすべてといってよいほど,さまざまな種類のCPUによって制御されています.これらのCPUにより制御される機器を,組み込み機器と呼びます.低消費電力や高速動作など,いかに優れた性能をもつCPUでも,それを制御するソフトウェアが貧弱であれば,CPUを組み込んだ機器(ハードウェア)自体の性能も劣ったものになります.そのため,ハードウェアの特徴を100%引き出すためには,ソフトウェアの優劣が大きな要因になります.

1.組み込み機器とさまざまなプログラミング言語

機械語/アセンブリ言語/高級言語

 組み込み機器を制御するプログラムには,さまざまな種類の開発言語があります.この開発言語には大きく分けて,機械語およびアセンブリ言語,高級言語の3種類があります(図1).

〔図1〕
プログラミング言語

● 機械語

 機械語は,それぞれCPUの種類別にユニークな言語です.機械語は0と1のバイナリまたは16進数で表現され,CPUが実際に理解できるのはこの機械語のみです.このように機械語は,CPUが直接理解できるレベルまでデコードされた言語であるため,人間が直接機械語でプログラミングすることはしません(不可能ではないが).

● アセンブリ言語

 機械語は数値の羅列に過ぎないので,それを多少でも人間に理解しやすい言語に置き換えたものがアセンブリ言語です.アセンブリ言語のインストラクション(ニーモニック)は,人間の言葉に近い形式で記述されます(“MOV”や“LD”など).これによりアセンブリ言語は,機械語と比較して,多少は人間に理解しやすい言語になっています.また,アセンブラで用意された疑似命令やマクロ機能などを使えば,人間がアセンブリ言語を使ってプログラミングすることも十分に可能になります.ラベル参照によるジャンプや構造体やコメントなどもソースプログラム内に記述できます.

 アセンブリ言語と機械語は,基本的には1対1で対応します.よって,CPUの一挙手一投足をすべて記述することができます.レジスタを直接操作する場合や処理時間(タイミング)を正確にする必要がある場合には,アセンブリ言語によるプログラミングが使われます.

 しかし,アセンブリ言語は機械語と同様,CPUの種類によりそれぞれ異なった表記をします.アセンブリ言語で開発するプログラマは,そのCPUの仕様を十分に理解し,CPU固有の命令を憶える必要があります.また,後述するようにアセンブリ言語には移植性やプログラミングの作業効率に問題があります.

● 高級言語

 高級言語は,人間の言語により近い形式でプログラミングしたいという要求から誕生しました.高級言語を使ったプログラムでは,条件判定や繰り返し,分岐など,プログラムの基本構造が,人間の思考形態に沿った形式で記述できます.また,キーワードや構文も英語に近い形式で記述できます.

1.組み込み機器とさまざまなプログラミング言語
 機械語/アセンブリ言語/高級言語
 C言語のメリット/デメリット

2.Cコンパイラと組み込み向けC言語の特徴
 開発の流れ
 ネイティブコンパイラ/クロスコンパイラ...


3月号特集トップページへ戻る


Copyright 2002 山本繁寿/有末一寿