コンピューターに「やってほしいこと」を伝える方法である「プログラミング」について紹介しています。まるで魔法の呪文のように、文字や記号を使って、機械に命令を出すことができるんです。プログラミングは、自分のアイデアを形にできる楽しい道具。最初は小さな一歩でも、少しずつできることが増えていくワクワクがあります。

2026年4月30日(木)

簡単な命令をアセンブリ言語で書いてみましょう!

それでは、Z80の基本中の基本、「LD(ロード)」「ADD(アド)」を使って、コンピュータの中でどうやって計算が行われているのかをのぞいてみましょう!

1. 「レジスタ」は魔法のポケット
Z80の中には、データを一時的に入れておく「レジスタ」という小さなポケットがいくつかあります。一番よく使うのが、計算のメイン担当である「Aレジスタ」です。
2. 命令を書いてみよう!
「1 + 2」という計算をアセンブリ言語で書くと、こんな感じになります。
LD  A, 1    ; Aレジスタに「1」を入れる(Load)
LD  B, 2    ; Bレジスタに「2」を入れる(Load)
ADD A, B    ; AにBを足す(Add) 答えの「3」はAに入る!
たったこれだけ!でも、これがコンピュータの「計算の正体」なんです。
3. 動きを解説!
1.LD A, 1(ロードAに1)
「LD」は「Load(入れる)」の略です。「Aというポケットに 1 を入れてね」という命令です。
2.LD B, 2(ロードBに2)
今度は別の「B」というポケットに 2 を入れます。
3.ADD A, B(アド A  B)
「ADD」は「Addition(足し算)」の略。「Aの中身とBの中身を足して、結果をAに入れてね」という命令です。 これで、Aレジスタの中身は「3」になります!

ここが面白いポイント!
今のプログラミング言語(Pythonなど)なら print(1 + 2) と書くだけで終わりですが、アセンブリ言語は「どのポケットに数字を置いて、どうやって計算させるか」を全部自分で決めます。
自分でCPUを操っている感じがして、ワクワクしませんか?

Z80アセンブラ命令をマシン語(16進数)に変換する

Z80アセンブラ命令をマシン語(16進数)に変換すると以下の通りになります。
LD A, 1 : 3E 01
3E が「レジスタAに即値をロードする」という命令コード、01 がロードするデータ本体です。
LD B, 2 : 06 02
06 が「レジスタBに即値をロードする」という命令コード、02 がロードするデータ本体です。
ADD A, B : 80
80 が「レジスタAにレジスタBの内容を加算する」という1バイトの命令コードです。
加算した結果がレジスタAに残ります。( A = A + B )

連続してメモリに書き込む場合は、3E 01 06 02 80 というデータ列になります。
Z80CPUは3Eから順に読み込んで命令を実行していきます。非常にシンプルですよね。
読み込まれたマシン語(16進数)は、ハードウエア的に組み合わされて処理が行われますw

アセンブリ言語(ニーモニック)を機械語(0と1の数字)に変換するには、専用の翻訳プログラムであるアセンブラを使用します。アセンブリ命令と機械語は通常1対1で対応しており、アセンブラが対応表に従って機械語へ変換します。

2026年4月11日(土)

プログラミング言語 アセンブラ

◎伝説のCPU「Z80」と「アセンブリ言語」の秘密!
みんなが使っているスマホやゲーム機の中には、CPU(Central Processing Unit)という「脳みそ」が入っています。昔1970年代から80年代にかけて大活躍した「Z80」というCPUがありました。この脳みそに命令を出すための特別な言葉(初期のプログラミング言語)が「アセンブリ言語」です。

今どきのPythonJavaScriptといったプログラミング言語に比べて、なぜこの古いやり方がすごかったのか? そのメリットを3つ紹介します!

1. コンピュータの「限界」を突破できる!
昔のコンピュータは、今のスマホに比べて驚くほどパワーが弱く、メモリ(記憶できる量)もほんの少ししかありませんでした。
メリット: アセンブリ言語を使うと、ムダを一切なくして、CPUに「最短ルート」で仕事をさせるこ     とができます。
たとえ: 重い荷物を運ぶとき、機械に任せると大回りしちゃうけど、プロが自分で運べば最短距離でヒョイっと運べるようなものです!
2. 機械と「直接」おしゃべりできる感覚!
普通のプログラミング言語は、人間がわかりやすい言葉を「翻訳機」(コンパイラ)に通してコンピュータに伝えます。でも、アセンブリ言語はコンピュータが理解する「マシン語(0と1の数字)」とほぼ1対1で対応しています。
メリット: CPUの中にある「レジスタ」という小さなポケットに直接データを入れたり出したりできます。
たとえ: 車を運転するだけでなく、エンジンの中身をバラして組み立てるようなもの。これがわかると、将来どんなプログラミング言語を学ぶときも「最強の基礎」になります。

アセンブリ言語は、現代でも特定の専門領域で不可欠な役割を担っています。一般的なアプリケーション開発では PythonJavaScript が主流ですが、ハードウェアを直接制御する必要がある場面や、極限のパフォーマンスが求められる場面で活用されています。

現在でもアセンブリ言語が使われている主な場面

1. 組み込みシステムとハードウェア制御
家電製品や車載デバイスなどの組み込みソフト開発では、メモリ容量や計算リソースが極めて限られているため、効率を最大化できるアセンブリ言語が選ばれます。
2. オペレーティングシステム(OS)の基幹部(Windows, Linuxなど)
OSの核となる「カーネル」では、CPUのレジスタ操作やメモリ管理など、ハードウェアとソフトウェアを橋渡しする処理にアセンブリ言語が必須となります。
3. 高度な最適化とセキュリティ
処理速度がサービス全体の性能を左右する場面や、特殊な命令セットを利用する場合に使用されます。

まとめ

アセンブリ言語は、確かに覚えるのが少し大変です。でも、それを使いこなせれば、「コンピュータの魔法の裏側」をすべて知っている魔法使いになれるのです。今の便利な時代だからこそ、この「超ストレートなやり方」を知ることで、プログラミングスキルはきっと誰よりも鋭くなります!

次回は簡単な命令をアセンブリ言語で書いてみましょう!

2026年3月30日(月)

プログラミング言語とは

プログラミング言語とは、コンピューターに与える動作の手順を書くために使われる言語です。

プログラミング言語の種類

プログラミング言語には多種多様がありますが、もっともコンピューターが理解できる言語はアセンブラ言語(アセンブリ言語)といいます。その昔はアセンブラ言語はよく使われていました。現在のように人が見て理解できるような言語(高級言語)はあまりありませんでした。

プログラミング言語の実行

プログラミング言語は、そのままではコンピューターは理解することが出来ません。逆にコンピューターが理解できるコード(機械語)は、そのままでは人は理解できません。人とコンピューターの間を取り持ってくれるのがプログラミング言語です。人が理解できる様に書かれたものを、コンピューターが分かるコードに変換することをコンパイルと云います。コンパイルされて初めてコンピューターが理解して命令を実行します。