命令を表すニーモニックの最後についている1文字で、扱うデータのバイト長を表します。movqレジスタの前または後についている1文字で、扱うレジスタのバイト長を表します。プログラミングにおいて、レジスタの使い方はOSによって異なる部分があります。それぞれのOSの関連文書にざっと目を通しておくことを勧めます。おいては一部の引数をレジスタで渡し、残りをスタックに積んで渡します。はじめとする主要なUnixで採用されています。呼び出し規約は次のように定義されています。レジスタで渡され、これ以上のパラメータはスタックに逆順で積まれる。命令によって呼び出され、次の命令のアドレスをスタックにpushし、指定されたアドレスにjumpする。命令によってであり、スタックからアドレスを取り出してそこにjumpする。call命令を実行する時はスタックは16byteにalignされていなければならない。XMM3)を用いて、残りはスタックに積んで渡されます。引数がレジスタで渡される場合でも、スタック上には必ず4個分のパラメータのための領域が確保されます。レジスタからの間接アドレッシングによってアクセスしなくてはいけません。オプティマイズ・オプションを変えてコンパイルしてみる。オブジェクト・ファイルを逆アセンブルして出力されたアセンブル言語を調べる。実行可能ファイルを生成して実行する。アセンブリ言語で書いたプログラムを実行させてみることにしましょう。起動し、「ターミナル」すなわちシェル(対話環境)を起動して下さい。アセンブリ言語で記述することにしましょう。文のコードを調べなさい。書いた後その行の終りまでがコメントとなります。文のコードをださないことがあることに注意して下さい。以下のようなCのコードを書いても駄目だ、ということです。文のコードを調べなさい。それにわかりやすいコメントを書き加えてから提出して下さい。文でアセンブリ言語の命令を書くこと。それにわかりやすいコメントを書き加えてから提出しなさい。本体をアセンブリ言語で書きなさい。ラベル、レジスタ名、定数などは自由に使用して構わない。動作することを確認したら、ソースを提出しなさい。上記の機械語だけを使ったコードがでるかもしれません。本体をアセンブリ言語で書きなさい。ラベル、レジスタ名、定数などは自由に使用して構わない。動作することを確認したら、ソースを提出しなさい。命令だけを使って題意の動作をするプログラムを書きなさい。先を指定するためにラベルを定義する必要があります。方法では、上記の機械語だけを使ったコードはでないでしょう。自分で考えて書くことが重要です。本体をアセンブリ言語で書きなさい。fib(n-1)基本的に次と同等の動作をする関数を定義してほしい。中で使うことのできる機械語命令は、以下の種類だけとする。jmpラベル、レジスタ名、定数などは自由に使用して構わない。メモリとのデータのやり取りが最小限になるように工夫すること。動作することを確認したら、ソースを提出しなさい。アドレスまでのメモリ領域を勝手に使うことがある。zoneによる最適化を禁止する必要がある。2010946補足説明__asm__文では次のシンタックスで、C言語の変数をアセンブリ言語の記述の中で利用することができる。値を変更するregister)便利な機能ではあるが、一部無駄が生じることがあるので注意が必要である。レジスタの間で無駄な転送が行われている。./ex9b-time1836311903real0m7.395suser0m7.370ssys0m0.006s次のようなコードでもまだ無駄がある。間で無駄なデータ転送が行われる。./ex9a-time1836311903real0m5.927suser0m5.908ssys0m0.006shttp://nw.tsuda.ac.jp/。