アセンブリとは何ですか?

ENIACは最初の汎用電子計算機でした。ペンシルベニア大学で建造され、1945年に完成しました。スナイダーは、それを手作業でプログラムした6人の女性のうちの1人でした。
ENIACのような機械が登場する前は、コンピューターという言葉は手計算で計算を行う人を指しており、ENIACをプログラムした6人の女性もその仕事のために雇われていました。機械をプログラムするには、彼女たちは配線を組み替えました。問題が変わるたびにケーブルを差し込み、スイッチを設定したのです。この配線の組み替えが、アセンブリ言語が存在する歴史的な理由です。数年以内に、ヨーロッパとアメリカの技術者たちは、命令を表す短い記述コードで配線やスイッチ設定を置き換え始め、人がコネクタに触れることなくプログラムを読み、変更できるようになりました。
まず、CPU(中央処理装置)はコンピューターの中心にあるチップで、1つの仕事を担います。それは命令と呼ばれる小さなコマンドの長いリストを、1つずつ、毎秒何十億回も実行することです。各命令はそれ自体は単純で、例えば2つの数を足す、値を移動する、別の場所へジャンプする、といったものです。
アセンブリとは、CPUが実行する命令のうち、人が読める形のものです。各行は(ほぼ)1つの機械命令です。ループやオブジェクト、文字列はありません。レジスタ(プロセッサ内部の小さな記憶スロット)とメモリの間で数を移動させます。

EDSACはデビッド・ウィーラーのInitial Ordersを実行しました。これは、書かれた命令を機械語に翻訳した最初のプログラムの1つです。
すべてのプロセッサには、書かれた命令を読み取り、ハードウェアが実行する生のビットを生成するプログラム、すなわちアセンブラが必要です。このページのアセンブラは1つの命令セットを対象としています。
このシミュレータはRISC-Vを使用しています。これは実際のチップで使われ、大学でも教えられている現代的な命令セットです。ここで学ぶことはハードウェアに直接応用できます。

RISC-Vはオープンな命令セットアーキテクチャです。誰でもその公開された仕様をハードウェアに実装でき、料金も許可も必要ありません。
どんな命令セットの設計も、1つの命令がどれだけの仕事を行うかを決めなければなりません。CISC(複合命令セットコンピュータ)チップは、ほとんどのデスクトップやラップトップコンピュータに見られるx86アーキテクチャを含め、各命令に大量の仕事を詰め込みます。1つの命令がメモリから値を読み取り、それに算術演算を行い、結果を書き戻すことを、すべて1ステップで行うかもしれません。RISC-VはPatterson & Ditzel, 1980が主張した設計に従います。各命令は1つの単純な操作を行い、複雑な振る舞いはこれらの命令を多数組み合わせることで生み出されます。
RISCはReduced Instruction Set Computerの略です。ハードウェアは、少数の単純な命令を高速で実行するように作られています。複雑な振る舞いは、これらの単純で高速なステップを組み合わせることで生み出されます。
ARCのためのキャスリーン・ブースのアセンブラ(Booth, 1947)と、EDSACのためのデビッド・ウィーラーのInitial Orders(Wilkes, Wheeler & Gill, 1951)は、最も初期に動作したアセンブラの1つに数えられ、歴史家たちはどちらが先だったかを今も議論し続けています。このシミュレータが実行する命令セットであるRISC-Vは、誰でも実装できる小さくオープンな命令のリストを定義しています(Asanović & Patterson, 2014)。ここから先のすべてのレッスンは、その命令セットを直接教えます。
電子
- [1]IEEE Computer Society. Women of ENIAC.
- [2]Booth, K. General Considerations in the Design of an All Purpose Electronic Digital Computer. 1947.
- [3]Wilkes, M. V., Wheeler, D. J., Gill, S. The Preparation of Programs for an Electronic Digital Computer. Addison-Wesley, 1951.
- [4]Patterson, D. A., Ditzel, D. R. The Case for the Reduced Instruction Set Computer. ACM SIGARCH Computer Architecture News, 1980.
- [5]Asanović, K., Patterson, D. A. Instruction Sets Should Be Free: The Case For RISC-V. UCB/EECS-2014-146, 2014.
- [6]Glen Beck and Betty Snyder program the ENIAC, building 328, Ballistic Research Laboratory. U.S. Army photo, public domain.
- [7]Maurice Wilkes examining a mercury delay line during the construction of EDSAC. Computer Laboratory, University of Cambridge, CC BY 2.0.
- [8]Yunsup Lee holding a RISC-V prototype chip, 2013. CC0.
