講義情報 へ戻る

アセンブリ言語2017

./受講生のページ 閲覧にはパスワードが必要です

シラバス案内

基本情報

  • 授業コード
    • 31S002AON1
  • 科目名
    • アセンブリ言語 (火木3)
  • 英文名
    • Assembly Language
  • 単位数
    • 2.0
  • 開講年度・学期
    • 2017年度 後期
  • 曜日時限
    • 火曜3限 木曜3限
  • 主担当教員名
    • 大島 直樹
  • 講義態様
    • 講義

事前履修条件

目的概要

この講義はコンピュータの動作の基本となる機械語命令一つ一つの動作を理解することを主目的とした講義を実施する。

機械語命令一つ一つは非常に単純な作業しかしていないので動作を理解するのはそれ程難しくない。複雑な作業を単純な機械語命令で実現するプログラミングが高度なだけである。そこで本講義では、機械語命令によるプログラミングではなく、機械語命令一つ一つに注目して、演算の内容とメモリ・レジスタ・演算回路(ALU)の間で情報(データ)がどう移動しどう加工されるかなどを正確に理解することを目的とした講義を実施する。

これにより次セメスターの「コンピュータ構成」はもちろんのことCASLIIの理解の大きな助けになる。本講義は、上記の技術内容の習得を目的とした講義を実施する。

教科書名

無し 講義で示す資料をPDFに変換したものを、毎回オンラインで配布する。 講義に先立って資料を熟読しておくほか、演習や考査にあたっては事前に例題・練習問題をすべて解き十分な準備をすること。 

参考書名

特に無し 

評価方法

演習および中間・期末の各考査の結果に基づき、以下の比率で評価を行う。 演習:20%、中間考査:30%、期末考査:50%。 

学習・教育目標(到達目標)

アセンブリ言語で目指す目標は、「2進数の16進数表記と2の補数表現の理解」である。 コンピュータは2進数で動作しているが、どうしても2進数は桁数が長くなるので、16進表記する場合が多い。 C言語やJava言語のプログラミングの分野においても、16進表記は可能であるが、2進表記は出来ないことからも、16進表記は重要である。 また、コンピュータは負の数を表現するために、2の補数表現という、10進数の算数・数学を習ってきた皆さんには理解しづらい表現方法を用いている。この2の補数表現を理解しないと、コンピュータの挙動を正しく理解することは出来ない。

次にアセンブリ言語で目指す目標は、「演算命令におけるデータの動きと演算の理解」である。 演算命令では2進数の数値データが読み出し、演算、書き込みという処理の中で移動をする。その移動の流れを理解することが重要であると共に、演算で行われる計算内容を理解することが重要になる。 2進数での加減算と論理演算は、資格試験でも重要になってくるので、必ず習得すること。

各回とも、事前学習として、配布される資料を事前に熟読し内容について把握しておくこと。

学位授与の方針(情報環境学部):DP1と対応 

テーマ・学習内容(準備学習内容)

 <第1回>

まず、アセンブリ言語の講義の目的と到達目標を説明します。 次に、アセンブリ言語の役割とコンピュータの基本構成の説明をします。 そして、計算式を電卓操作に分解した上で、電卓と10進数計算によるコンピュータの「フリ」をして、アセンブリ言語の基本概念を学びます。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分) 

 <第2回>

まず、プロセッサの基本構成要素であるアキュムレータとプログラムカウンタの役割を説明します。 次に、計算式を電卓操作に分解するのと同様に、計算式をアキュムレータを想定したアセンブリ言語へ分解する手順を説明します。 アセンブリ言語を英語表記すると共に、基本的なアセンブリ命令であるロード・ストア命令,加減乗除命令,停止命令の解説をします。 英語表記されたアセンブリ命令を、命令表を使って理解する方法を説明します。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分) 

 <第3回>

単純な計算だけではなく、同じことの繰り返しや、計算結果に従ってその後の計算の変更を実現する、分岐命令を説明します。 まずは、必ず処理手順を変更する無条件分岐命令の解説をします。 次に、計算結果に従って処理手順を変更するか、変更しないか決定する、条件分岐命令の解説と繰り返し型プログラムを説明します。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分) この頃に演習を行います。 

 <第4回>

ここまでは、計算式をアセンブリプログラムに変換することを主に説明しましたが、ここではアセンブリプログラムを解読して計算式を読み取る方法の説明をします。 次にプロセッサが整数演算を基本としていることを理解します。 そして新しい命令として、正負反転命令,否定付きの条件分岐命令を解説します。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分) 

 <第5回>

まず、プロセッサが限定された長さの整数しか扱えないことの解説をします。 それを具体化した、10進2桁プロセッサの概念を理解します。 次に、条件分岐に用いるフラグの解説をします。 そのフラグの変化が、10進2桁に制限された場合の四則演算とどう結びつくかを解説します。 そして、新しい命令として減算はするけれども、減算結果の残らない比較命令の理解をします。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分) この頃に演習を行います。 

 <第6回>

ここまではアセンブリ命令を英語的な表記をしていたのに対して、ここからは現実のアセンブリ命令に合わせた略称、ニーモニックに書き換えると共に、数字表記に置き換えたオペコードによる機械語形式を解説します。 ニーモニック+オペランド表記とオペコード+オペランド表記の間の変換作業、アセンブルと逆アセンブルの解説をします。 そして、オペランドを演算対象の表現方法から分類したアドレッシングモードと命令長の理解をします。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分) この頃に演習を行います。 

 <第7回>

学力考査(中間期) 10進2桁プロセッサという、現存はしないが、8ビットプロセッサに類似したプロセッサを題材とした試験を行います。

【事前学習】配布資料を見直すと共に、練習課題や演習問題を解けるようにしておくこと(60分) 【事後学習】学力考査に出題された問題の内容を整理する(30分)

 <第8回>

学力考査の出題意図解説 学力考査(中間期)以降は、10進2桁プロセッサを16進2桁プロセッサ(=8ビットプロセッサ)に切り換えていきます。 まずは、10進数と2進数と16進数(16進表記の2進数)の理解をします。 次に2進数の加減算を16進数表記のまま行う方法の説明をします。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分)

 <第9回>

現実の2進数を基本としたプロセッサが整数を表現する上で、人間からは馴染み難い負の数の表現方法、2の補数表現について解説していきます。 まずは、単純な計算としての「1の補数」「2の補数」の理解と、16進表記のまま「1の補数」「2の補数」を計算する方法を説明します。 「2の補数」の性質が「正負の反転」と似ていることから、「2の補数表現」を解説していきます。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分)  この頃に演習を行います。 

 <第10回>

「2の補数表現」を使って表現された16進表記の整数(正の数や負の数)を10進数に変換する手法と、その逆で10進数で表記された整数を「2の補数表現」を使った16進表記に変換する手法の解説と理解をします。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分)  

 <第11回>

現実のプロセッサにおいても、2進数で限定された長さ、8ビット、16ビット、32ビット、64ビットの整数しか扱えないことを説明すると共に、その長さを変換する方法、特に「2の補数表現」を用いた場合の長さの変換方法の理解を目指します。 また、2進数ならではの演算である、論理演算の説明をします。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分)  この頃に演習を行います。 

 <第12回>

先週に引き続いて、2進数多ビットの論理演算の説明をします。 次に、本講義で題材とする16進2桁プロセッサ(=8ビットプロセッサ)の解説をします。 そして、16進2桁プロセッサに追加する論理演算命令の理解をします。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分)  

 <第13回>

10進2桁プロセッサでも解説したフラグを16進2桁プロセッサに適用していきます。 まず、2の補数表現における算術演算とフラグの変化の対応関係を理解します。 2の補数表現をするかしないか、即ち符号付きと符号無しで四則演算がどう影響を受けるかを説明します。 そして、乗除算における符号付きと符号無しの区別を理解 そして、16進2桁プロセッサ=8ビットプロセッサプログラムの動作の理解をします。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分)  

 <第14回>

4種類のフラグと分岐命令の再確認をします。 16進2桁プロセッサ=8ビットプロセッサのアセンブルと逆アセンブルの理解をします。

【事前学習】配布資料を事前に熟読し内容について把握する(30分) 【事後学習】配布する練習課題に取り組むこと(30分)  この頃に演習を行います。 

 <第15回>

学力考査(期末)および出題意図の解説 16進2桁プロセッサ=8ビットプロセッサを題材として、16進10進の相互変換、各種演算命令の実行結果、16進表記の機械語プログラムの逆アセンブルと実行結果の理解を問います。 【事前学習】配布資料を見直すと共に、練習課題や演習問題を解けるようにしておくこと(90分) 【事後学習】学力考査に出題された問題の内容を整理する(60分)  

備考

質問への対応(オフィスアワー等)

基本的には、平日の17:00〜19:00に対応します。ただし、事前にメールで連絡をとることが望ましい。教員室:教育棟203 

受講生のみなさんにメッセージ

システム開発・ソフトウエア設計などの業界に就職を希望する学生は履修を強く勧めます。本講義では、各種プログラミングにおいて最も欠かすことのできない概念を紹介します。資格試験においても重要です。 

講義情報 へ戻る


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-09-07 (木) 10:45:38 (167d)