14:02:35すみません。「0Xle」ではなく「le」でした。07:44:512HDのFDで作るにはCHSを調べた後にIPLを編集するそれだけです。14:16:03他に移植する場合は仕様を調べなければいけません。14:18:32p.170のasmhead.nasからbootpack.cの呼び出しに関する質問です。01:14:03p.170のasmhead.nasからbootpack.cの呼び出しに関する質問です。0x00000000に設定されています。データセクションに以下の記述があります。データセクションとして使用されるという私の解釈が間違っているような気がします。bootpack.cを実行する時はプロテクトモードなのでアドレスは1MB以上の領域にあります。お返事頂きありがとうございます。この理解は正しいでしょうか。お返事頂きありがとうございます。この理解は正しいでしょうか。お返事頂きありがとうございます。誤字脱字があるため、再投稿します。この理解は正しいでしょうか。12:21:16正しいです。データセクションの先頭はコードの後に設定されるようになっています。20:07:54p.67のnaskfunk.nasについて。23:03:54p.67のnaskfunk.nasについて。23:07:20p.68no(上の質問で、二回投稿することになってしまい、すみません。23:11:47GLOBALとは、_io_hltを他のオブジェクトファイルからリンクできるようにしろというアセンブリの疑似命令です。C言語のソースコードとnaskfunk.nasは別々に処理されてobjファイルとなり、最後にリンクという処理をして同一のbimファイルにします。この工程の大まかな説明はおそらくp60~70の間に有ったと思います。C言語では、すべての関数はGLOBALになってるので、GLOBAL=C言語の宣言ではないと思います。C言語の「宣言」に当たるのは、本の中で出てくる「EXTERN」が近いのではないかと思います。16:22:38返信ありがとうございます。追加で質問なんですが、p.32のAX,CX,DX,BX,SP,SI,DIの説明を読んだんですが、イメージが掴みづらいです。SPとかなんとなくポインタなんだなーと思ったんですが、ベースポインタやスタックポインタの違いなどがわかりません。らへんを読むと解ると思います。言うよりもとりあえずSPなどはどっかを指し示してるあたりの認識で良いのでしょうか。しないのはわかりますが、後に必要となれば出てきますので。C言語の変数はメモリ上に配置されてることが多いと思いますが、メモリというのはCPUからすると幾分遅い機器なので、CPUについていけるレジスタというものがあり、CPUの状態を保持してたりするので、変数とは少し分けるのが適切かと思いますが、要はどちらもデータを保存してます。本を開いてみましたが、P.40に十分な説明があるのでそこを読んでみてください。19:53:56sksatさん、ありがとございます。00:01:33sksatさん、ありがとございます。アドレスに演算子(&や|など)をつけて条件分岐する式の内容がイマイチ実感わきません。17:11:50質問された内容は、アドレスではなく変数の内容に対して演算子がついてると思います(間違ってたらすみません)。&というのは特定のbit以外全て0にするという使い方が有りまして、デバイスとの通信の際、デバイスの状態などを特定のbitを立てて知らせる方法が多用されます。調べたいbit以外を0にして、それを0と比較することで、そのbitが立ってるかどうかを調べることができます。0であればそのbitは0で、0でなければそのbitは1です。逆にor演算子は特定のbitを強制的に1にできます。or演算子は主に代入などで使用されています。こんな感じでどうでしょう。21:28:32PG_MANAさん、わかりやすい説明ありがとうございます。本の冒頭に書いてあるとおり、わからないところは読み飛ばして、適宜戻ってきて読むべきでしょう。21:01:03本に書いてあるとおりのURL(community.osdev.info)が使えません。Kさんが作成した避難場所です。代わりになると思われます。10:39:17アセンブラの書き方について。本に書いてあるとおりにアセンブラを書き、実行したところ、エラーが出ました。見た感じ文字の打ち間違えはないので、ここでアセンブラの書き方が悪いと判断し、質問。1、アセンブラ(x86)は大文字ではなく小文字で記述しても問題はないか。2、アセンブラの命令(?)(例えばmov)と、実行するレジスタの間に開けるスペースの文字数は決まっているのか。)の有効範囲について。以上が疑問に思った点です。急いで書いたため、口調がエラソウになってしまいましたが、少しでも僕の疑問を解消するために付き合ってくれたら嬉しいです感謝します。12:38:21スペースが省略されてしまっていますね。12:40:28環境はNASKかNASMと仮定します。1:問題ないと思います、自分は小文字で記述しています。2:これも問題ないと思います。3:ラベルの定義は関数のように考えるよりも付箋と考えるべきです。ラベルとは該当箇所のアドレスを指すと考えると良いです。eax,entry」とするとentryラベルの場所のアドレスがeaxが代入されます。entry」はentryラベルのあるアドレスへ飛ぶという命令になります。よって質問の答えとは、「ラベルの有効範囲は1行」となりますが、おそらく動作不良とは関係がない気がします。一度コードをよく見直し、それでもうまく行かないようでしたら、コードを貼るかURLを添付するなどするとより的確な回答が得られるのではないでしょうか。09:31:08↑途中で投稿してしまいました。したのですが何も変わりません。何か見落としなどあるでしょうか。09:32:40オペミスでした。13:36:18DB命令の名無しですが、0xがつくものは、16進数ということは、理解しています。13:40:34上記のCDの付いていない本を買った者です。他のブログにて解決方法を知ることができました。メモリにディスクから読み込んでいるとおもうのですが、バッファアドレスの指定がコード中に見当たりません。どの部分でバッファアドレスを指定しているのか教えてください。3日目harib00dメモリにディスクから読み込んでいるとおもうのですが、ES:BXと表記せずにESとBXにそれぞれの値を代入することで、バッファアドレスを指定できるのでしょうか。3日目harib00dメモリにディスクから読み込んでいるとおもうのですが、ES:BXと表記せずにESとBXにそれぞれの値を代入することで、バッファアドレスを指定できるのでしょうか。