*情報学類 機械語序論の講義ページ(2007年度前半分) [#q56ab137]
*情報学類 機械語序論の講義ページ(2008年度後半分) [#q56ab137]

このページは情報学類2年生科目「機械語序論」の講義ページです.(後半は佐藤三久先生の担当で別ページになります) 
このページは情報学類2年生科目「機械語序論」の講義ページです.(前半は佐藤三久先生の担当で別ページになります) 

*&color(red){!!中間試験について!!}; [#b2a6fdf6]
&size(16){&color(red){1月22日の第一時限に以下の要領で中間試験を行います。};};
-教室に変更はありません。
-資料は「持ち込み可」とします。ただし、PC等の機器の持ち込みは禁止とします。
-範囲は第5回目の講義までとします。ただし、スタックの概念までは含めますが、アセンブラでの再帰呼び出し(演習課題4の2番)は範囲からは除きます。
-当日の2時限目の演習はありません。
-試験中、携帯電話やPHS等の通信機器の電源は切ってください。

*講義室 [#jfde9e52]
第一回講義は部屋が大変狭くご迷惑をおかけしました.第二回より,1時限目の講義のみ,2C404で行うことになりました.(2C410の斜め前)

*アップデート情報 [#kf4bc82c]
-2007/12/10: 第1回講義資料の補助資料を追加しました.(lecture1.pdf)
-2009/01/29: 第6回・第7回講義資料を追加しました。

*講義のスケジュール [#d0d9eaaf]
|12/4|  第1回|講義資料1|&ref(kikaigo-intro.pdf); &ref(lecture1.pdf);|
|12/11|  第2回|講義資料2|&ref(lecture2.pdf);|
|(12/18)| 月曜講義振替日| ||
|12/25|  第3回|講義資料3(本編、補足資料)|&ref(lecture3.pdf); &ref(lecture3-a.pdf);|
|1/8|  第4回|講義資料4(本編、補足資料)|&ref(lecture4.pdf); &ref(lecture4-a.pdf);|
|1/15|  第5回|講義資料5(本編)|&ref(lecture5.pdf);|
|1/22| 中間試験|||
|1/29〜| 第6回以降|佐藤先生講義|http://www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/kikaigo2007/|
|12/2〜1/13|第1回〜第5回|佐藤先生講義|http://www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/kikaigo2008/|
|1/20|  第6回&中間試験|「関数呼び出しとスタックフレーム|講義資料6&ref(lecture6.pdf);|
|1/27|  第7回|「C言語と機械語のリンク」|講義資料7&ref(lecture7.pdf); &演習課題5&ref(kadai5.pdf);|
|2/3|  第8回|「各種データの扱い」|講義資料8&演習課題6|
|2/10|  第9回|「機械語と命令セットアーキテクチャ」|講義資料9&演習課題7|
|2/17| ??|(期末試験を繰り上げて実施)||


*講義資料(pdf) [#zd23e8f9]

*講義・演習のtips [#re2d9de8]
**x86環境のマシンについて [#vcdcdf38]
coinsではx86アーキテクチャのマシンは数台しかありません。演習はそのマシンにsshコマンドでリモートログインして行ってください。マシン名は "orchid-calc?" で、最後の "?" には数字の1〜6が入ります。自分の学籍番号の下2桁を6で割って、その余りに1を加えた数を使ってください。例えば、あなたの学籍番号の下2桁が "13" だった場合は orchid-calc2 を使ってください。 

**orchid-calc? での文字コード [#y2c473bf]
orchid-calc? では文字コードがMacintoshとは異なっており、sshでリモートログインした後のエラーメッセージ等が文字化けします。これを防ぐために、orchid-calc? にリモートログインした後で以下のコマンドを実行して下さい。 

% setenv LANG C 

これは、文字コードを無効(常に英語)にするという意味を持ちます。 

**ファイルの終端コードについて [#mc9e166f]
アセンブラのソースプログラムを書いて cc コマンドで機械語にコンパイルしようとすると、以下のメッッセージが出ることがあります。 

Warning: end of file not at end of a line; newline inserted 

これは、「ファイルの最後に改行がないままファイルが終わってしまったので、改行を入れておいたよ」という警告です。ファイルの最後は必ず改行を1つ打っておかなければいけません。ただ、このメッセージはそういう警告を出した後、コンパイラは改行を自動的に入れてくれているので、コンパイル自体はちゃんと終わります。 

**16進電卓 [#vf3b0ee4]
課題を解く上で、多倍長計算の答え合わせが難しい、という声を聞きました。簡単に検算を行う方法として「16進電卓」を教えます。 

UNIXのbcというコマンドがあります。これは簡易電卓のプログラムですが、この中で「入力/出力の基数を設定する」という機能があります。以下のようにして実行すると、入力を16進数で与え、結果も16進数で表示する」という電卓を作ることができます。 

% bc 

(何かメッセージが出てくるが、気にしない) 

obase=16 

ibase=16 

このように ibase と obase を設定した後で、例えば 

1F+35 

とか入力すると、結果が 54 のように表示されます。コマンドを終了するには control-D をタイプします。

&color(blue){マメ知識:bcコマンドにおけるibase=は「入力の基数(base number)を変更する」という意味です。これ以降の入力は指定された値を基数とする「進数」で表されます。obaseは同様に出力の基数を変更します。obaseを指定する前にibaseを指定するとおかしなことになるので注意してください。(なぜそうなるのかは自分で考えてみてください)。};


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS