授業科目名 アセンブラプログラミング演習
履修期 秋 2単位 履修基準年度 2年
担当者 大崎 博之(OHSAKI HIROYUKI)
授業目的 / Course Objectives
機械語およびアセンブリ言語を用いた低レベルのプログラミングを通して、コンピュータのハードウェアとソフトウェアの構造を理解し、コンピュータの動作の仕組とプログラム実行の機構を深く理解する。
到達目標 / Attainment Objectives
アセンブリ言語を用いて小規模なプログラム開発が可能になるとともに、高級言語のコンパイラが生成する機械語を読めるようになる。
授業時間外の学習 (準備学習等について) / Study Required Outside of Class (Preparation etc.)
教科書や関連資料の予習を前提として授業を進める。
授業計画 / Class Overall Plan
1. マイクロプロセッサと機械語・アセンブリ言語
2. アセンブラと逆アセンブラ
3. コードリーディング (変数と代入)
4. コードリーディング (式と評価)
5. コードリーディング (制御フロー)
6. コードリーディング (ストレージクラスとスタック
7. コードリーディング (手続きと関数)
8. コードリーディング (コンパイラによる最適化)
9. アセンブリ言語によるプログラム開発
10. プログラミング演習 (レジスタ操作)
11. プログラミング演習 (四則演算)
12. プログラミング演習 (ビット操作)
13. プログラミング演習 (条件分岐)
14. プログラミング演習 (スタック操作)
15. プログラミング演習 (応用プログラミング)
教科書 / Textbook(s)
Interface 増刊 『x86 アセンブラ入門』 (CQ 出版、2006年)
参考文献 References Books
-
授業方法 / Method of Instruction
講義およびコンピュータを用いた演習を行う。

コンピュータの大規模化・複雑化や、オブジェクト指向言語、軽量プログラミング言語に代表される高級言語の発達により、機械語やアセンブリ言語を用いた低レベルプログラミングの機会は減りつつある。しかし、コンピュータの構造を理解し、その可能性を引出すためには機械語やアセンブリ言語によるプログラミングに習熟することが不可欠である。

本講義を通じて、普段利用しているコンピュータや高級言語の内部構造を理解することができるため、非常に興味を持って取り組めるでコンピュータの大規模化・複雑化や、オブジェクト指向言語、軽量プログラミング言語に代表される高級言語の発達により、機械語やアセンブリ言語を用いた低レベルプログラミングの機会は減りつつある。しかし、コンピュータの構造を理解し、その可能性を引出すためには機械語やアセンブリ言語によるプログラミングに習熟することが不可欠である。

本講義を通じて、普段利用しているコンピュータや高級言語の内部構造を理解することができるため、非常に興味を持って取り組めるであろう。
学生による授業評価の方法 / Course Evaluation by Students
全学統一様式による
成績評価 / Evaluation Criteria/Method
平常リポート(Ordinary paper)
備考 / Note
-
検索キーワード / Keywords
アセンブラ、アセンブリ言語、機械語、コンピュータ・アーキテクチャ、マイクロプロセッサ