2003lk入門

トップに戻る

をクリックすると非真理設定が非表示になります。ページを再読み込みすると戻ります。


ksi.2 基礎的な命令

lexn.1 kRz命令

最もよく使う命令として、kRz命令があります。これは値を[書き写す](kRantairzarth)命令で、[メモ](firjal)や[住所箱](setistafar)の間で値を書き写す作業を行うことができます。

例えば、kRz f0 f1と書くと、f0[を](-'i)読んでf1[に](-'c)書き写せ、という命令になります。この際、f1完全に上書きされ、元のf1の値は失われます。先頭に動詞、次に「[を](-'i)」、最後に「[に](-'c)」を置くのが基本的な書き方です。AT&T Syntaxですな

(なお、先に「[に](-'c)」が来てその後に「[を](-'i)」が来る言語を話している人のために、先頭に'c'iと書くことでそれ以降の部分を全て「[に](-'c)の後に[を](-'i)」の語順として扱わせることができます。Intel Syntaxに慣れているみなさんも一安心もとに戻す場合は'i'cと書きます。混乱を避けるため、この解説では一貫して'c'iの使用を控えます。)

例として、f0の値をf1に複製した後、f1の値をf2に複製する命令列は以下のようになります。

	kRz f0 f1
	kRz f1 f2

これを実行すると、もともとf0に入っていた値がf1にもf2にも入ります。

なお、「もともとf0に入っていた値」とは具体的にどんな値なのでしょう?分かりません。これに限らず、明示的に値を設定していない[メモ](firjal)にはどんな値が入っているのかは一般に分かりません。現世流に言うなら「未初期化のレジスタにはゴミが入っている」

順番を逆にして、

	kRz f1 f2
	kRz f0 f1

とするとどうなるでしょうか?この場合は先ほどと違い、3つの[メモ](firjal)が全て同じ値になるとは限りません。もともとf1に入っていた値はf2に移り、f1は新しくf0の値で上書きされます。

また、特定の数値を直接[メモ](firjal)に入れることもできます。

	kRz  3 f1
	kRz f1 f2

とすると、まず数値3がf1に入り、次にそれがf2に書き写されます。

もちろん、次のような操作を行うことはできません。

	kRz f1 2

数値「2」は当然記憶装置ではないので、そこに対して値を書き込むことなどできるはずがないからです。

ちなみに、

	kRz f0 f0

のように、書き写し元と書き写し先が同一の[メモ](firjal)を指している場合は、何も起きません。この「何も起きない」ということを明示的に表すために、kRz f0 f0の別名として、[何もしない](fav es niv e'i)を略したfenという名前を使うことができます。

メモリに関しては、kRz f1@ f1@ で何も起きない保証はない(メモリが読み取り専用だったり存在しなかったりしたら例外になるでしょう)が、そもそも例外機構自体の仕様が定まっていないし言及しないのが吉

さて、これで[メモ](firjal)を操作することができるようになりましたが、[住所箱](setistafar)を操作したいときにはどうすればよいのでしょうか?次はそれを見ていきましょう。


前のページへ   次のページへ