機械語序論 (情報学類、平成20年度、3学期 、火曜日 1, 2時限, 3A402)
- 担当: 佐藤 三久、 朴 泰祐
- 内容:(便覧掲載概要)
機械語によるプログラム作成を実際のマシン上で実習しながら、計算機の構成
を命令セットアーキテクチャレベルで説明する。命令実行の仕組み、演算命令、
制御命令、アドレッシング、入出力、割り込みなどを含む。
-
機械語の命令セットアーキテクチャは、アーキテクチャ、コンパイラ、オペレー
ティングシステム等と深い関係がある。「機械語序論」では、PCで広く使われ
ているx86アーキテクチャをベースにして、機械語の命令セットアーキテクチャ
について説明し、実際の計算機がどのようにしてプログラムを実行するのかを
理解する。また、C言語によるプログラムと機械語によるプログラムの関係に
ついても理解する。
-
学習目標:
- 計算機におけるプログラムの動作原理と機械語の命令セットについて理解する。
- 簡単なアセンブリ言語によるプログラミングができるようになる。
- 言語コンパイラ(Cコンパイラ)から出力されるオブジェクトコードについ
て理解する。
講義リンク:
お知らせ:
- 中間試験を、1/20の2時限に行います。
なお、1/20の1時限目は通常の講義を行います。
- 後半は、朴先生担当です。
- 中間試験を行います。
この講義はコンピュータとアセンブリ言語のプログラミングについての基本的
な知識を身につけることが目標です。ほとんどのプログラムは、Cを初めとす
るプログラミング言語を使って書かれていますので、アセンブリ言語すなわち
機械語を直接プログラミングする機会は少なくなっていますが、コンピュータ
がどのようにして動作しているかを理解するにはアセンブリ言語を理解するこ
とは重要です。
対象マシンとしては、皆さんが多く使っているマシンのプロセッサx86を使い
ます。このマシンのアーキテクチャ
は必ずしも、初心者がアーキテクチャを学習するのに適しているアーキテクチャ
とはいえませんが、「生の」マシンを体験してもらうために、x86のプロ
セッサを対象にしていきます。
この講義は、以下のような内容・順番で進めます。(前半:佐藤、後半:朴)
- 第1週 (12/2, 担当 朴):計算機のしくみと機械語について(演習なし)
[講義資料1]
[講義資料-スライド]
- 第2週(12/9, 担当 佐藤):x86アセンブリ言語と基本的な命令
[講義資料2]
[課題1]
[講義演習のtips]
[デバッカgdbの使い方]
- 第3週(12/16, 担当 佐藤): 演算命令(その2)
[講義資料3]
[課題2]
[捕捉資料3a]
[捕捉資料3b]
- 第4週(12/25, 担当 佐藤):アドレッシングモードと条件分岐
[講義資料4]
[課題3]
- 第5週(1/13, 担当 佐藤):演算命令(その3)、関数呼び出し(その1)
[講義資料5]
[課題4]
- 1/20: 中間試験(2時限目)
- 第6週(1/20, 担当 朴):関数呼び出しについて(その2)、呼び出し規則
等について
- 第7週(1/27, 担当 朴) :
C言語とのインタフェース,Cコンパイラからのオブジェクトコードの解説
- 第8週(2/3, 担当 朴):各種語長の演算命令と浮動小数点演算
- 第9週(2/10, 担当 朴): x86以外のISA
- 第10週(2/17, 担当 朴): 未定
- 3/3: 期末試験 (2時限目)
演習課題の提出、試験、資料について: