* 0章〜3章にまつわるQ&Aのまとめ
-(by [[K]], 2006.03.28)
-いろいろQ&Aが集まったと思うので、ここにまとめておこうと思います。
-ここで答えが見つからなければ、[[q_and_a]]へ!
-makeに関する質問は [[faq/make]] にあります。
*** 質問と答え
-COLOR(#0000ff){むずかしい!}
--[[faq/others]]へ。
-COLOR(#0000ff){Aドライブにきちんとディスクを入れているのにinstall.batの実行に失敗する(エラーが出る)。}
--tolsetを置いたディレクトリが深くありませんか? 実際は深さが問題になるのではなく、tolsetへの絶対パスが長くなるといけないようです(おそらくimgtol.comを含めて64文字以内)。対策としてはtolsetを丸ごと引越しさせてください。
-COLOR(#0000ff){edimg.exeの詳しい説明がほしい。}
--[[tools/edimg]]をご覧ください。
-COLOR(#0000ff){nask.exeではエラー数の表示しか出ないけど、どこでどんなエラーが出たのか詳しく知りたい。}
--[[tools/nask]]をご覧ください。
-COLOR(#0000ff){edimg.exeでコピーしたファイルって更新日時が9時間ずれていませんか?}
--するどいです。そうです、実はずれています。これは bias パラメータで日本時間を指定しなかったせいです(biasパラメータの説明をするのが面倒で、本文には書きませんでした)。 bias パラメータについては[[tools/edimg]]をご覧ください。
----
-COLOR(#0000ff){[p.18(1-1)] 実機で試したいけどFDDをもっていないのでCD-Rでやりたい。方法はないのか?}
--p.678(30-6)にCD-ROM起動について書いてありますので参考にしてください(そこでは話の流れの都合でディスクイメージ名がharibote.imgになっていますので読み替えてください)。
-COLOR(#0000ff){p.18(1-1)] 手順どおりにディスクを作ったけど、ディスクをWindowsで見てみたら空っぽって表示されている。どうやればhelloos0をインストールできるのか?}
--いえいえ、空っぽだと表示されますが、それでいいのです。OSはきっときちんとインストールされています。迷わずそのディスクから起動してみてください(ファイルとして表示されないからといって、何も入っていないということにはならないのです。helloos0はWindowsのディスクの管理方法における「ファイル領域」という部分を使っていないので、その意味ではディスクの容量を消費していないのです)。
-COLOR(#0000ff){[p.23(1-3)] 「超長いソースプログラム」のhelloos.nas(184320行)をnaskにかけると「NASK : too large helloos.nas」というエラーがでる。}
--どうもすみません。そのとおりです。まさかそれを試す方がおられるとは・・・。どうかその次の「まともな長さのソースプログラム」でガマンしてください。
-COLOR(#0000ff){[p.31(2-2)] バイナリエディタで打ち込んできたことを考え合わせると、「JMP entry」は「EB 4E」に翻訳されるようです。しかしこれは「JMP 0x4e」ということなんですか?でもentryって0x7c50ですよね?この食い違いはなんですか?}
--とりあえずその翻訳結果はそれで合っています。食い違っているように見えるかもしれませんが、食い違ってはいません。変だと思うかもしれないですが、そのように翻訳されるのが正しいのです(機械語というのはちょっとややこしいのです)。この説明でまあそんなものなのかなと思えない人は[[faq/asm]]をご覧ください。
-COLOR(#0000ff){[p.48(3-1)] ipl.nasのerror:の処理のところに ES = 0; に相当する処理をしているところがあるが、これは何のために必要な処理なのか?}
--すみません、それは不要な処理です。筆者が開発中に消し忘れたものが残ってしまいました(ESは使っていないので、この処理があっても動作に問題があるわけではありません)。初版第8刷以降では修正(=削除)したいと思っています。
-COLOR(#0000ff){[p.59(3-6)] haribote.nasに ORG 0xc200 を書き足したようだが、こんな命令を書き足す必要が本当にあるのか。というのは、ipl.nasによってharibote.nasは0xc200に無事に読み込まれているのだから。しかも試しにharibote.nasからORG命令を削除してみても問題なく動作しているようにみえる。}
--ORG命令の意味は、アセンブラにこのプログラムがどこに読み込まれる予定なのかを教えることです。したがって0xc200に読み込むのならそれは当然ORG 0xc200と書くべきで、その意味でこのプログラムは正しいのです。・・・しかし一方で、確かにこのORGを省略してしまっても、harib00hくらいまでは問題なく動いてしまうでしょう。これは偶然にORGの値が機械語の翻訳に影響しない命令の組み合わせだけになっているからです。そしてharib00iからはORG命令の影響を受ける命令も使っているので、ORG命令を消したらうまくいかなくなるでしょう。
--どうも誤解されているように思うのですが、ORG命令は機械語を指定した番地に読み込ませるための命令では「ありません」。正しい番地に読み込ませるのはプログラマの責任です。ORG命令は、どこに読み込ませて実行するつもりなのかをアセンブラに教えてやるための命令です(p.31参照)。もしこれが正しくないと不適切な機械語になってしまい、うまく実行できなくなるというだけのことです。
* こめんと欄
-(新規の質問をここには書いてほしくなかったので、名無しさんの質問は[[q_and_a]]に移動させました。) -- [[K]]
-なぜEB4E004845から始まるか全くわかりません。全く素人です。すみません -- [[tarochi0812]] SIZE(10){2009-08-19 (水) 20:30:47}
-新規の質問はここには書かないでください!新規の質問で本に関係あることは[[q_and_a]]へ、自分の改造やより高度なことは[[impressions]]へお願いします。 -- [[K]] SIZE(10){2009-08-19 (水) 21:22:05}
-新規の質問はここには書かないでください!新規の質問で本文の内容については[[q_and_a]]へ、改造やより高度なことは[[impressions]]へお願いします。 -- [[K]] SIZE(10){2009-08-19 (水) 21:22:05}
#comment