機械語序論 (情報学類、平成14年度、3学期 、火曜日 1, 2時限)
- 担当: 佐藤 三久、 朴 泰佑
- 内容:(便覧掲載概要)
機械語によるプログラム作成を実際のマシン上で実習しながら、計算機の構成
を命令セットアーキテクチャレベルで説明する。命令実行の仕組み、演算命令、
制御命令、アドレッシング、入出力、割り込みなどを含む。
-
機械語の命令セットアーキテクチャは、アーキテクチャ、コンパイラ、オペレー
ティングシステム等と深い関係がある。「機械語序論」では、PCで広く使われ
ているx86アーキテクチャをベースにして、機械語の命令セットアーキテクチャ
について説明し、実際の計算機がどのようにしてプログラムを実行するのかを
理解する。また、C言語によるプログラムと機械語によるプログラムの関係に
ついても理解する。
-
学習目標:
- 計算機におけるプログラムの動作原理と機械語の命令セットについて理解する。
- 簡単なアセンブリ言語によるプログラミングができるようになる。
- 言語コンパイラ(Cコンパイラ)から出力されるオブジェクトコードについ
て理解する。
お知らせ:
- 前半の演習課題1-4の
模範解答 を掲載しました。
- 講義後半のホームページは、
こちら
- 第6週からは、朴先生が担当します。
- 第2週の
講義資料にミスがありました。cmp命令で定数
と比較する場合には、定数を第一オペランドにしなくてはなりません。講義資
料は訂正してあります。
囲み部分、cmp %eax,$10 → cmp $10,%eax
- 初回は1、2時限とも、講義です。
この講義はコンピュータとアセンブリ言語のプログラミングについての基本的
な知識を身につけることが目標です。ほとんどのプログラムは、Cを初めとす
るプログラミング言語を使って書かれていますので、アセンブリ言語すなわち
機械語を直接プログラミングする機会は少なくなっていますが、コンピュータ
がどのようにして動作しているかを理解するにはアセンブリ言語を理解するこ
とは重要です。
対象マシンとしては、皆さんが演習室で
つかっているマシンのプロセッサx86を使います。このマシンのアーキテクチャ
は必ずしも、初心者がアーキテクチャを学習するのに適しているアーキテクチャ
とはいえませんが、「生の」マシンを体験してもらうために、x86のプロ
セッサを対象にしていきます。
この講義は、以下のような内容・順番で進めます。(前半:佐藤、後半:朴)
- 第1週(12/3):計算機のしくみと機械語について。計算機のしくみと機械語と
はなにかについて解説する。(演習なし)
- 第2週(12/10):
- 1時限目講義:x86の基本的なアーキテクチャとx86のアセンブラ
- 2時限目演習:デバッカの使い方、簡単な演算プログラム
- 第3週(12/17):
- 1時限目講義:メモリアクセス、演算命令(加算、減算)、分岐命令(その1)
- 2時限目演習:簡単なプログラムの課題
- 第4週(12/24):
- 1時限目講義: 分岐命令(その2)、コンデションコード、ループ
- 2時限目演習: 分岐命令をつかった演習
- 第5週(1/14):関数呼び出しについて(その1)
- 第6週(1/21):関数呼び出しについて(その2)、呼び出し規則等につい
て
- 第7週(1/28) : 休講の予定(進みぐあいによって、補講あり)
- 第8週(2/4): Cコンパイラからのオブジェクトコードの解説
- 第9週(2/18): ビット演算、浮動小数点、Cレベルのデバッカの解説
- 第10週(2/28、金曜日に振替)
システムコール、オペレーティングシステム関連
- 期末試験(3/4)
講義資料
講義後半のホームページは、
http://www.hpcs.is.tsukuba.ac.jp/~taisuke/kikaigo2002/を参照。