[OSASK 3993] Re: nask00i..

 こんにちは、I.Tak.です。

>せん。これでプログラムを特定のアドレスに転送するようなプログラム
>が簡単にかけます。

 NASMだと、org はアドレスのオリジンを設定するだけ、つまり
"org hoge" の意味は "$$ = hoge" です。そんでもって、$$ は
最後に(内部のbinリンカで)評価されるようです。たとえば
	org 0xff
	dw $
	org 0x10
	dw $
というコードは
	org 0x10
	dw $
	dw $
と全く同じ意味です。

 そして、たぶんアセンブラとリンカが完全に別れているからだと
思いますが、
>    DB $$
こんなことをすると "error: one-byte relocation attempted" と
しかられます。org 0x100 とか出てくるとまずいからでしょう。

 この制限は、MASMみたいにトリッキーなことをしてコードを破壊する
危険をさけるため、と説明されています。今のnask仕様でも、上書きする
つもりはないのに、前の部分が存外に長くて上書きしてしまったという
問題を招きかねません。戻って上書きすることの意味はなんでしょうか?

 ファイル中を戻って上書きできるのに、進むことはできないという非対称
も変な感じです。先頭からずらずら書く方が分かりやすいと思います。


I.Tak. <g240845 !Atmark! mail.ecc.u-tokyo.ac.jp>
http://user.ecc.u-tokyo.ac.jp/~g240845/


ML番号でジャンプ
ML単語検索