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

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

*質問等 [#f720c8fc]
講義・演習に関する質問は、kikaigo-qa [AT] hpcs.cs.tsukuba.ac.jp 宛までお願いします([AT]を@マークに変えてください)。朴個人のアドレスには送らないでください。

*期末試験について [#h75ec21d]
期末試験は期末試験週間内に、以下の要領で行います。
-日時:3月2日(火)第2時限(10:10〜11:25)
-場所:3A402(通常の教室)
-形態:「講義資料プリント」「自筆ノート」のみを持ち込み可とする。PC,PDA,携帯電話,PHS等の電子機器は一切持ち込み不可(携帯電話等は電源を切っておくこと)。

*アップデート情報 [#kf4bc82c]

---2010/02/02: 第7回講義資料のエラー(1ページ目のサンプルコードで、関数呼び出し後のスタックのクリーンアップでESPを増やすべきところをsub命令で減らしていた)について修正したバージョンを lecture7n.pdf としてアップロードしました。

*講義のスケジュール [#d0d9eaaf]
|12/1〜1/12|第1回〜第5回|多田野先生講義||
|1/26|  第6回&中間試験|「関数呼び出しとスタックフレーム|講義資料6&ref(lecture6.pdf);演習課題&ref(kadai5.pdf);|
|2/2|  第7回|「C言語と機械語のリンク」|講義資料7(改訂版)&ref(lecture7n.pdf); &演習課題6&ref(kadai6.pdf);|
|2/9|  第8回|「各種データの扱い」|講義資料8&ref(lecture8.pdf); &演習課題7&ref(kadai7.pdf);|
|2/16|  第9回|「機械語と命令セットアーキテクチャ」|講義資料9&ref(lecture9.pdf);&補足資料&ref(lecture10.pdf);|
|2/23| 休講|||
|3/2| 期末試験(第2時限目)|||

*講義・演習の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