ここはおかしいと思うよ のページ

  • (by K, 2006.02.19)

  • 本の文章でおかしいところを見つけたら教えてください(ご協力をお願いします)。
    • 誤字や脱字などのレベルの話です。
    • 確認できたらサポートページの正誤表に載せます(多分次の刷があれば反映されます)。
    • 大規模な修正は次の刷でも修正できないと思いますが、それはごめんなさい。
    • 「そもそも日本語がなってない!」:すみませんそのとおりです。それはどうかお許しください。
  • Wikiや他のサポートページでおかしいと思ったら、impressionsへ。

  • 初版・第1刷のp.15の「EB4E004845」は間違いでした。正しくは「EB4E904845」です。お詫びして訂正します。 -- K 2006-02-23 (木) 20:07:41
  • 初版・第1刷のp.54のリスト内の「エラーがおきなれば」は間違いでした。正しくは「エラーがおきなければ」です。お詫びして訂正します。同様のミスはこのプログラムを改造して作られたプログラムのすべてに引き継がれてしまっています。 -- K 2006-02-23 (木) 20:14:12
  • 初版・第1刷のp.671のリスト内の「/* info[3] ; ysize */」は間違いでした。正しくは「/* info[3] : ysize */」です(セミコロンとコロンの違い)。お詫びして訂正します。 -- K 2006-02-23 (木) 20:22:37
  • 初版・第1刷のp.31に「enrty」とかかれた部分がありますが、これはスペルミスです。正しくは「entry」です。お詫びして訂正します。 -- K 2006-03-03 (金) 04:13:35
  • 初版・第1刷のp.60の本文中に「256が色使える」という部分がありますが、これは「256色が使える」の誤りです。お詫びして訂正します。 -- K 2006-03-03 (金) 04:20:50
  • 初版・第1刷のp.62本文下から2行目のVARMは、VRAMの間違いですね。 -- autumngoodluck 2006-03-05 (日) 11:59:41
  • ご指摘ありがとうございます。そのとおりです。お詫びして訂正いたします。 -- K 2006-03-05 (日) 12:19:23
  • 初版・第1刷のp.3の「C言語がたくさんできてきますが」は「C言語がたくさん出てきますが」の間違いでした。お詫びして訂正します。 -- K 2006-03-05 (日) 16:20:09
  • 初版・第1刷のp.7の脚注のgccの説明の「GNUという団体が作った」は「GNUというプロジェクトが作った」の間違いでした。お詫びして訂正します。 -- K 2006-03-05 (日) 16:24:41
  • 初版・第1刷のp.21の「連(つら)なっただけもので、」は「連(つら)なっただけのもので、」の誤りです。お詫びして訂正します。 -- K 2006-03-05 (日) 18:32:13
  • 初版・第1刷のp.82の「筆者も理解しくいと思っていて」は「筆者も理解しにくいと思っていて」の誤りです。お詫びして訂正します。 -- K 2006-03-05 (日) 21:44:42
  • 初版一刷、harib19g/a_nask.nas にある api_openwin ですが、このファイルだけ EBX を PUSH/POP する処理が消えています。harib20aでは復活しているので、mistakes の方に報告しておきます。 -- killer_elf 2006-03-06 (月) 18:51:27
  • ご指摘ありがとうございます。現在調査中です。しばらくお待ちください。 -- K 2006-03-06 (月) 21:17:57
  • 確認しました。確かにおかしいです。EBXのPUSH/POPが抜けているのはバグです。bugsのほうに転記することにします。見つけにくいバグを見つけてくださってありがとうございました。 -- K 2006-03-06 (月) 21:56:33
  • 初版・第1刷のp.7の脚注と同じ表現(GNUという団体)が初版・第1刷のp.46の本文中ほどにあります。 -- かりん 2006-03-09 (木) 23:13:08
  • 初版一刷、p.548の最終段落「マウスの右ボタンをはなして...」とありますが、左ボタンの間違いだと思います。 -- killer_elf 2006-03-10 (金) 00:42:43
  • ご指摘ありがとうございます。確認しました。おっしゃるとおりです。初版・第1〜2刷のp.46の「GNUという団体」は「GNUプロジェクト」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-10 (金) 00:47:23
  • ご指摘ありがとうございます。確認しました。おっしゃるとおりです。初版・第1〜2刷のp.548の「マウスの右ボタンをはなして」は「マウスの左ボタンをはなして」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-10 (金) 00:49:42
  • 初版一刷、P185の画像の上の行、「さてbootpack.cのほうのmemtestを削除して…」これは、memtest_subを削除して、の間違いだと思います。 -- uchan 2006-03-11 (土) 09:38:23
  • ご指摘ありがとうございます。おっしゃるとおりです。初版・第1〜3刷のp.185の「さてbootpack.cのほうのmemtestを削除して、」は「さてbootpack.cのほうのmemtest_subを削除して、」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-11 (土) 12:30:43
  • 初版一刷、p196の2行目「456円を切捨てで100円単位…」は「切り上げ」の間違いだと思います。 -- uchan 2006-03-11 (土) 22:49:44
  • ご指摘ありがとうございます。おっしゃるとおりです。初版・第1〜3刷のp.196の「456円を切捨てで100円単位にするなら、」は「456円を切り上げで100円単位にするなら、」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-12 (日) 00:37:11
  • 初版一刷、p220、HariMain()の中、「buf_win = (unsigned char *) memman_alloc_4k(...);」ここに、/* ココ! */というコメントが抜けていると思います。 -- uchan 2006-03-13 (月) 21:19:22
  • 初版第1刷、P.81真ん中の■■■■■の次の段落で「分かったよう分からないような」は「分かったような分からないような」ではないでしょうか。 -- あっきぃ 2006-03-14 (火) 17:51:37
  • uchanさんご指摘ありがとうございます。おっしゃるとおりです。初版・第1〜3刷のp.220の「bufwin = 」の行末には「/* ココ! */」をつけておくべきでした。お詫びして訂正いたします。 -- K 2006-03-14 (火) 18:07:02
  • あっきぃさんご指摘ありがとうございます。おっしゃるとおりです。初版・第1〜3刷のp.81の「分かったよう分からないような」は「分かったような分からないような」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-14 (火) 18:29:23
  • 初版一刷、p265、timer_settime()の一番最後のif文の中、「/* sとtの間に入れる場合た */」、「た」が余計に入ってます。 -- uchan 2006-03-16 (木) 07:52:48
  • 初版一刷、p318、fifo32_initの引数「TASK *task」、正しくは「struct TASK *task」だと思います。 -- uchan 2006-03-16 (木) 17:30:34
  • uchanさんご指摘ありがとうございます。おっしゃるとおりです。初版・第1〜3刷のp.265の「/* sとtの間に入れる場合た */」は「/* sとtの間に入れる場合 */」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-17 (金) 11:39:53
  • 同様に初版・第1〜3刷のp.318のリストの中の「void fifo32_init(struct FIFO32 *fifo, int size, int *buf, TASK *task)」は「void fifo32_init(struct FIFO32 *fifo, int size, int *buf, struct TASK *task)」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-17 (金) 12:24:45
  • 初版一刷、p342、void HariMain()の中、/* ココから */ /* ココまで */の中にあるif文の後、sheet_refresh()の最後の引数が20になっていますが、CDのソースでは21です。20だと、Tabでウィンドウを切り替えたとき、1pxの青い筋が残ったままになるので、きっと1px増やして21にしたのでしょう。 -- uchan 2006-03-21 (火) 10:11:01
  • uchanさんご指摘ありがとうございます。確認しました。初版・第1〜3刷のp.342の2つのsheet_refresh()の最後の引数が20になっていますが、これは21の誤りでした。お詫びして訂正いたします。 -- K 2006-03-22 (水) 17:29:24
  • 初版・第1〜3刷のp.331の最下行に「now_taskというのは、タスクに関する設定をいじる前の、task_nowの結果のことです。」という一文がありますが、この文章は不要で削除しておくべきものでした。お詫びして訂正いたします。 -- K 2006-03-22 (水) 17:31:54
  • 初版・第1〜3刷のp.289のページ見出しの「14-7:おまけ(2)(harib11i……289」は「14-7:おまけ(2)(harib11i)……289」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-23 (木) 08:56:31
  • 初版二刷p.55のコード中コメント「アドレスを0x200進める」は「アドレスを0x20進める」でしょうか。 -- 名無しさん 2006-03-23 (木) 20:40:00
  • いえ、そのコメントはあっています。ESに0x20を加えることで、アドレスを0x200進めているのです(ESは16倍されてアドレスになるため)。 -- K 2006-03-24 (金) 00:04:02
  • 「>16倍されて」 なるほど読み足りませんでした。了解です。 -- 名無しさん 2006-03-24 (金) 00:55:59
  • 初版一刷、p398、下から2行目「/* 32で割り切れたらbreak */」 これと同様の処理がharib16bにも載っているわけですが、harib16bでは「/* 4で割り切れたらbreak */」というコメントになっています。4が32になるのは、20日目の最初にプログラム整理以降の様です。 -- uchan 2006-03-24 (金) 22:13:12
  • 初版第2刷のp.89に「ちなみにキャリーフラグはELFAGSの第0ビットです」とありますが、ELFAGSはEFLAGSではないでしょうか。 -- いつもROMってる人 2006-03-24 (金) 22:51:23
  • いつもROMってる人さんご指摘ありがとうございます。確認しました。これに限らず、見つけにくいミスを見つけてくださっているみなさんには本当に感謝です。初版・第1〜3刷のp.89の「ちなみにキャリーフラグはELFAGSの第0ビットです」は、「ちなみにキャリーフラグはEFLAGSの第0ビットです」の誤りでした。お詫びして訂正いたします。 -- K 2006-03-24 (金) 22:58:08
  • uchanさんご指摘ありがとうございます。確認しました。最初から32にしてあるほうが自然だと思うのでp.385とp.386のリストを修正いたします。 -- K 2006-03-24 (金) 23:46:41
  • 初版一刷、p405、5行目「そしてコンソールで『hrb』と。」 これは「hlt」の間違いだと思います。 -- uchan 2006-03-25 (土) 09:04:20
  • ご指摘ありがとうございます。確認しました。初版・第1〜3刷のp.405の『そしてコンソールで「hrb」と。』は『そしてコンソールで「hlt」と。』の誤りでした。お詫びして訂正いたします。 -- K 2006-03-25 (土) 16:57:33
  • 初版・第1〜3刷のp.390のリスト内のtypeコマンドの部分に「(中略)」が抜けていました。お詫びして訂正いたします。 -- K 2006-03-25 (土) 17:52:20
  • 初版一刷、p463、一行目、「hello2.nasと同じ内容のもの」これは「hello4.c」の間違いだと思います。 -- uchan 2006-03-31 (金) 19:35:44
  • 初版一刷P50の、フロッピィディスクの説明で、挿絵も含めて内側からシリンダ0…となっていますが、外側からの間違いではないでしょうか。 -- 聖人 2006-04-01 (土) 21:43:56
  • 聖人さんご指摘ありがとうございます、そのとおりです。本文が間違っていたせいで挿絵まで間違ってしまいました。初版・第1〜4刷のp.50の「これは内側から」は「これは外側から」の誤りでした。お詫びして訂正いたします。 -- K 2006-04-01 (土) 22:46:04
  • uchanさんご指摘ありがとうございます。初版・第1〜4刷のp.463の「hello2.nasと同じ内容のものを」は「hello4.nasと同じ内容のものを」の誤りでした。お詫びして訂正いたします。 -- K 2006-04-01 (土) 22:47:45
  • hello4.nasは本文中に出てきていませんよ。hello4.cは出てきていますが。 -- uchan 2006-04-02 (日) 09:30:10
  • 初版一刷、p485、a_nask.nasの中、MOV EAX,[ESP+8]とありますが、これはMOV EBX,[ESP+8]だと思います。 -- uchan 2006-04-11 (火) 19:51:46
  • 初版一刷、p508、最後の段落「if (256 <= i && i < 512) だったのです。」は、「if (256 <= i && i <= 511)だったのです。」の間違いだと思います。 -- uchan 2006-04-15 (土) 16:20:37
  • uchanさんへ。3件ともありがとうございました。いずれも正誤表に反映いたしました。 -- K 2006-04-15 (土) 17:39:56
  • 初版一刷、p550、bootpack.cの中「sheet_updown(sht_mouse, 2);」の次の行が空行ですが、実際は「key_win = sht_cons[0];」が有ります。その空行は削除し、sheet_updownの次の行に「(中略)」を持ってくるのが良いと思います。 -- uchan 2006-04-20 (木) 17:47:36
  • uchanさんご指摘ありがとうございます。その修正案はなかなかいいのですが、ここは行を追加すると次の関数がページの境界に合わなくて済みそうなので、その方向で修正を加えようと思います。 -- K 2006-04-24 (月) 07:23:11
  • 初版四刷、P394、下から2行目「そしてコンソールでhrbコマンドを」。 「hlt」の間違いだと思います。 -- 名無しさん 2006-05-10 (水) 17:09:42
  • ご指摘ありがとうございます。確認しました。初版・第1〜5刷のp.394の『そしてコンソールでhrbコマンドを実行します』は『そしてコンソールでhltコマンドを実行します』の誤りでした。お詫びして訂正いたします。 -- K 2006-05-10 (水) 22:38:08
  • 初版第4刷、p.531下から3行目、「2003〜2002」は「2003〜3002」の誤りと思われます。 -- 名無しさん 2006-05-11 (木) 13:12:02
  • ご指摘ありがとうございます。確認しました。初版・第1〜5刷のp.531の『2003〜2002になりますが』は『2003〜3002になりますが』の誤りでした。お詫びして訂正いたします。 -- K 2006-05-11 (木) 17:01:52
  • 初版第1刷、P.477上から1行目、「0〜32797」は「0〜32767」の誤りと思われます。というか、本書全体で rand() に絡むところは全てかもしれません。stars.c とか。 -- ひよひよ 2006-05-13 (土) 07:34:59
  • 初版第2刷、下から4行目、「条件よっては2クロックで」は「条件によっては2クロックで」の間違いでは? -- ぶんた 2006-05-13 (土) 13:38:53
  • (ぶんたさんへ。ご指摘は大変ありがたいのですが、ページが分からないので確認できません。申し訳ありませんがお教えください。) -- K 2006-05-13 (土) 16:55:25
  • すみませんページを書くのを忘れました。初版第2刷、231ページ、下から4行目、「条件よっては2クロックで」は「条件によっては2クロックで」です。 -- ぶんた 2006-05-13 (土) 20:53:44
  • ご指摘ありがとうございます。確認しました。初版・第1〜6刷のp.476、p.477、p.479の『0〜32797』は『0〜32767』の誤りでした。お詫びして訂正いたします。 -- K 2006-05-17 (水) 19:29:57
  • ご指摘ありがとうございます。確認しました。初版・第1〜6刷のp.231の『条件よっては2クロックで』は『条件によっては2クロックで』の誤りでした。お詫びして訂正いたします。 -- K 2006-05-17 (水) 20:22:02
  • 初版第2刷、307ページ、本文下から7行目、「タスクスイッチのするためのプログラムが」は「タスクスイッチをするためのプログラムが」の間違いでは? -- ぶんた 2006-05-19 (金) 23:03:03
  • ご指摘ありがとうございます。確認しました。初版・第1〜6刷のp.307の『タスクスイッチのするためのプログラムが』は『タスクスイッチをするためのプログラムが』の誤りでした。お詫びして訂正いたします。 -- K 2006-05-23 (火) 00:23:52
  • 初版第2刷、411ページ、上から2行目、「IDTへの登録ときに」は「IDTへの登録のときに」の間違いでは? -- ぶんた 2006-06-01 (木) 23:00:09
  • 初版第4刷、p.673、「0x28c99 % 18432 = 『1193』バイト」は「0x28c99 % 18432 = 『1177』バイト」の誤りと思われます。 -- 名無しさん 2006-06-02 (金) 17:27:47
  • 初版第4刷、p.117、右シフト演算子の説明で、右シフトした結果空いたビットには0を補うと説明されていますが、空いたビットに必ず0が補われる左シフトとは違い、右シフトは符号ビットを補う「算術シフト」も考慮に入れる必要がありますね。 -- 名無しさん 2006-06-03 (土) 10:44:59
  • 初版第4刷、p.652、「#define INVALID -0x7fffffff」は「#define INVALID 0x80000000」の方がbetterかと思われます。 -- 名無しさん 2006-06-05 (月) 15:04:46
  • ぶんたさん、ご指摘ありがとうございます。確認しました。初版・第1〜6刷のp.411の『IDTへの登録ときに』は『IDTへの登録のときに』の誤りでした。お詫びして訂正いたします。 -- K 2006-06-06 (火) 08:44:44
  • 名無しさんへ(それぞれ別の方かもしれませんが、ここではとりあえず同一人物として扱います。同一視されて迷惑なときは適当な仮名をお使いください)。あまりの件は確認中です。ご指摘のとおりであれば直すべきだと僕もそう思います。・・・右シフトの件はおっしゃるとおりですが、この本で出てくる右シフトではすべて正の数が対象になっているので、そういうややこしい説明をあえて避けました。アセンブラの教科書ではないので、そのような厳格な説明をするよりは、処理の説明の話の腰をおらないようにするべきだと考えています。したがって間違いではありません。・・・INVALIDの件も、0x80000000だとプラスの数だがオーバーフローしている、という警告がでてうっとうしくなる懸念があって、かといってそのためにunsignedにしたりしなかったりするのは話をややこしくするだけだと考え、あえて-0x7fffffffにしています。以上のような考えにより、0x80000000のほうがbetterだとは思いません。・・・いずれにせよ、3つのうちのうしろの2つは「誤字や脱字などのレベルの話」ではないと思うので、このような話題は以後はこちらではなくimpressionsにお書きください(バグに相当すると思われる場合はbugsに)。 -- K 2006-06-06 (火) 14:35:38
  • 初版第4刷411・413ページの下のタイトルが「プアプリケーション〜〜〜」となっています。正しくは、「アプリケーション〜〜〜」ではないでしょうか? -- Clover 2006-06-30 (金) 05:36:06
  • ご指摘ありがとうございます。確認しました。初版・第1〜6刷のp.411、p.413のページの下のタイトルの『プアプリケーション名を自由に』は『アプリケーション名を自由に』の誤りでした。お詫びして訂正いたします。 -- K 2006-07-01 (土) 12:56:23
  • P.167とP.168にまたがってるasmhead.nasの一部のところですが、「pipelineflash」は「pipelineflush」の間違いではないでしょうか? -- kabus 2006-07-09 (日) 19:00:02
  • 初版第3刷77・79・81ページの下のタイトルが「4-3:C言語からメモリに書き込みたい(harib01a)・・・・・・・・」となっているのですが、「4-3:ポインタに挑戦(harib01c)・・・・・・・・」の間違いなのではないのでしょうか? -- 名無しさん 2006-07-15 (土) 00:31:42
  • kabusさんへ。おっしゃるとおり、パイプラインフラッシュのスペルは、 pipeline flush が正しいようです。機会があればソースといっしょに本文を修正したいです。名無しさんの指摘については現在確認中です。 -- K 2006-07-20 (木) 18:01:08
  • 名無しさんへ。ご指摘ありがとうございます。確認しました。初版・第1〜6刷のp.77〜81のページの下のタイトルの『C言語からメモリに書き込みたい(harib01a)』は『ポインタに挑戦(harib01c)』の誤りでした。お詫びして訂正いたします。 -- K 2006-07-24 (月) 12:30:23
  • 初版第2刷 p.125の4行目「満タンになってします。」は「満タンになってしまいます。」ではないでしょうか? -- 名無しさん 2006-07-29 (土) 18:23:32
  • 初版初刷 p.220の1行目「graph.c」は「graphic.c」だと思います。 -- Akkie 2006-08-05 (土) 22:25:25
  • 名無しさんへ。ご指摘ありがとうございます。確認しました。初版・第1〜7刷のp.125の『構造体は満タンになってします。』は『構造体は満タンになってしまいます。』の誤りでした。お詫びして訂正いたします。 -- K 2006-08-07 (月) 20:20:57
  • Akkieさんへ。ご指摘ありがとうございます。確認しました。初版・第1〜7刷のp.220の『これはgraph.cのinit_screen8を改造した程度のものです。』は『これはgraphic.cのinit_screen8を改造した程度のものです。』の誤りでした。お詫びして訂正いたします。 -- K 2006-08-07 (月) 20:24:13
  • 初版第5刷p.90〜91  「GLOBAL」にて、 「io_stihlt」 は 「_io_stihlt」 だと思いました。 それと 「_io_out16」 にて、 「MOV EAX,[ESP+8]」 は 「MOV AX,[ESP+8]」 ではないかなと思ったんですがどうでしょうか。 -- yuya 2006-08-11 (金) 21:23:59
  • yuyaさんへ。ご指摘ありがとうございます。確認しました。初版・第1〜7刷のp.90のリスト内の『GLOBAL   _io_hlt, _io_cli, _io_sti, io_stihlt』は『GLOBAL   _io_hlt, _io_cli, _io_sti, _io_stihlt』の誤りでした。お詫びして訂正いたします。 -- K 2006-08-12 (土) 10:49:18
  • しかし MOV EAX,[ESP+8] は間違いではなくこれであっています。もちろんAXでも問題なく動作しますし、EAXにすると必要のない2バイトもメモリから読み取ることになるのですが、32bitモードの場合はAXを使うよりもEAXを使うほうが機械語が短くなる上に実行速度も速いので、わざとEAXにしています。 -- K 2006-08-12 (土) 10:51:58
  • 初版第3刷p255、性能測定で、harib10,harib09 no -- DEVE 2006-09-18 (月) 01:09:44
  • ↑(続き)の記述がおかしいような… 真ん中あたり、harib10cとharib10d の比較は、harib10cとharib09dの比較では? -- DEVE 2006-09-18 (月) 01:11:24
  • 初版初刷p.395の最後の行「あしたもがんばるー、おー!」は、「あしたもがんばるー、おー!」かな、と思います。 -- あっきぃ 2006-09-18 (月) 07:57:52
  • DEVEさんへ。この部分をなぜおかしいと思われたのかが分かりませんので説明があっているかどうかわからないのですが、一応書いておきます。意図していることは確かにharib09dの頃のプログラムとharib10cのプログラムとの比較です。しかしharib09dからharib10cへの変更点は比較したい部分だけにとどまらないので、純粋な比較ができません。それで条件をできるだけ揃えたharib10dを作り、これとharib10cとを比べています。この比較結果を素直に受け止めて、本文中でもharib10cとharib10dとの比較と記述しています。 -- K 2006-09-18 (月) 19:40:27
  • すみません。僕の勘違いでした。すぐ上の所に書いてありましたね…数字の羅列が多かったので読み飛ばしていたようです。お手数かけました。 (ちなみに、この本は非常に読みやすく楽しいです。今後も頑張ってください。) -- DEVE 2006-09-19 (火) 22:01:34
  • あっきぃさんへ。ご指摘ありがとうございます。確認しました。初版・第1〜7刷のp.395の『あしたもがんばるそー、おー!』は『あしたもがんばるぞー、おー!』の誤りでした。お詫びして訂正いたします。 -- K 2006-09-23 (土) 21:43:44
  • 初版・第1〜7刷のp.170の脚注の『substract』は『subtract』の誤りでした。お詫びして訂正いたします。 -- K 2006-10-30 (月) 19:21:49
  • 第7刷のp.293 4行目。『次に実行する命令がメモリのどの番地あるか』 。多分、『次に実行する命令がメモリのどの番地にあるか』の脱字だと思います -- hideyosi 2007-01-08 (月) 00:07:49
  • 第7刷のP418。下から4行目。『でPUSHDを使わすに、』は、『でPUSHDを使わずに』だと思います。 -- hideyosi 2007-01-13 (土) 23:30:07
  • 初版第1刷、P127、上から8行目「programable」は「programmable」だと思います。(mが二つ連続する) -- uchan 2007-03-11 (日) 09:53:00
  • 初版第7版p176の下から8行目。CPUの速さについてこれられるようなー>CPUの速さについてこられるような。”れ”が1個不要だと思います。 -- ざんに 2007-03-12 (月) 16:06:44
  • 初版第7版p596のsosu3.cのリストの上から3行目。#define MAX 1000 --> #define MAX 10000。1000が修正されていません。 -- ざんに 2007-03-12 (月) 16:16:28
  • hideyosiさんへ。ご指摘ありがとうございます。確認しました。初版・第1〜8刷のp.293の『次に実行する命令がメモリのどの番地あるか』は『次に実行する命令がメモリのどの番地にあるか』の誤りでした。お詫びして訂正いたします。 -- K 2007-05-25 (金) 07:25:27
  • hideyosiさんへ。ご指摘ありがとうございます。確認しました。初版・第1〜8刷のp.418の『_asm_hrb_apiでPUSHADを使わすに、』は『_asm_hrb_apiでPUSHADを使わずに、』の誤りでした。お詫びして訂正いたします。 -- K 2007-05-26 (土) 01:21:01
  • 初版第6刷p316以降にあるtask_b->eip = (int) &task_b_main;という記述なんですが、関数名自体が関数のポインタを示してるのでアドレス演算子をつけるのは間違いではないでしょうか。 -- Flast 2007-06-24 (日) 18:30:42
  • 間違いではありません。わかった上でわざとやっています。間違いではない理由:ANSI-Cでは関数のポインタをあらわすときに、&をつけてもつけなくてもいいことになっています。そして実際、CD-ROMについているコンパイラではエラーになりません。もしかしたら他のコンパイラでは挙動が異なるのかもしれないですが、それはそれがANSI-Cに従っていないだけなので、僕の責任ではないと考えています(続く)。 -- K 2007-06-25 (月) 01:14:10
  • わざとやる理由:ANSI-Cでは確かに関数名を書くだけで関数へのポインタを表せることになっていますが、それは本来を&と書くべきところを、面倒だから書くのを省略できるようにしただけだろうと思います(たった一文字のために)(これは僕の勝手な推測なので違うかもしれません。その場合については後に説明します)。そうであれば、まずは本来の書き方で本を書くべきだと思いますし、&をつけるほうが読者はポインタであることを意識できるでしょう(可読性があがる)(続く)。 -- K 2007-06-25 (月) 01:20:08
  • わざとやる理由の続き:もしかしたら&をつけない記法こそ本来の記法なのかもしれません。でももしそうだとすると、今度はなぜ&をつける表記をわざわざ許容することにしたのか疑問です。 http://kmaebashi.com/programmer/pointer.html のページの方が「関数へのポインタ」でいわれているとおり、この許容はANSI-Cの仕様を非常に複雑にしています。それだけの犠牲を払ってでも&をつけることを許す理由があったはずです。それは何かといえば、もちろんプログラムを1文字長くしたいからではないはずで、読みやすくなると考えたか、もしくはこのような表記を許してほしいと願うプログラマが多かったからでしょう。僕は「この方が読みやすくなる(=理解しやすくなる)」と感じています。それゆえに、本ではこの書き方でやりました。 -- K 2007-06-25 (月) 01:26:30
  • なるほどわかりましたANSI-Cまでは規格判ってなかったので正しかったのですね。C++のコンパイラでやったときに引っかかったんでどうなんだろと思ったんですが、規格として成り立ってるなら問題ないですね。説明ありがとうございました。 -- Flast 2007-06-25 (月) 01:55:16
  • 初版第6刷p401にある2箇所のfor(j = 0; j < 11; j++)は最後の要素が評価されないのでfor(j = 0; j < 12; j++)ではないですか? -- Flast 2007-06-27 (水) 23:23:46
  • 初版第6刷p634のリスト(cmd_appの変更)についてですが、一つ目のset_segmdescの引数が変更点として書かれていません。すぐ下の文章にはfinfo->sizeをappsizに置き換えると書いてあるのですが何かの都合で省略されたのでしょうか?付録のCDでは変更されていたのでbugsではなくこちらに報告しました。 -- j 2008-02-05 (火) 01:55:32
  • (Flastさんの質問についてはimpressionsに回答があります。) -- K 2008-02-05 (火) 19:29:58
  • jさんへ。全くもってご指摘の通りのミスでした。ご指摘の箇所を変更点に含め忘れてしまいました。どうもすみません。お詫びして訂正いたします。 -- K 2008-02-05 (火) 19:43:05
  • 初版第1刷p.637のリスト(putchar.c)のすぐ上の行「これはapi_putcharを使えは」は「これはapi_putcharを使え」の間違いだと思います。 -- uchan 2008-02-23 (土) 08:20:48
  • 初版第4刷p.411のスクリーンショットの下のコメント、「無事にこんちにはー」は「無事にこんにちはー」の間違いだと思います。 -- aotatsu 2009-01-23 (金) 22:55:19
  • 初版第12刷p112の、下部「ページング」の説明において、「ページングによる解決は4GBをタスクの数だけ作り」は「ページングによる解決は4KBをタスクの数だけ作り」の間違いだと思います。タスクの数だけ4GBを作ったら今のWindows搭載PCはほとんど動きません。 -- Triangle Ld. 2010-03-17 (水) 20:07:13
  • >>Triangle Ld.さん 間違いではありません。ページングによる解決では、メモリはそのアドレスに始めてアクセスしたときに割り当てられる(ようにOSを作る)ので、4GBすべてにアクセスしない限りメモリが不足することはありません。 -- 名無しさん 2010-03-17 (水) 23:42:45
  • 初版第12刷480pの、dxとdyの説明のところで、「でも逆にdyとdyを…」は、「でも逆にdxとdyを…」の間違いだと思います。 -- hikarupsp 2010-11-07 (日) 21:23:23
  • 初版第12刷292pの「これは「task status segment」(タスク状態セグメント)と呼ばれていて…」の「task status segment」は、「task state segment」(status -> state)の誤りではないでしょうか。Intelの資料には、日本語版と英語版両方に、「task state segment」「タスク・ステート・セグメント」との記述がありました。 -- hikarupsp 2011-10-08 (土) 16:06:22
  • http://hrb.osask.jp/bugfix.html の正誤表のページにおいて,〜…第9刷 の p.401 と p.495 の正誤は 〜…第7刷 の正誤と同一です.(第9刷でそのミスが復活したのでしたら,いいのですが.) また,〜…第9刷 の p.401 の正誤が間違っています.(finfo[i]. とすべきところを fifo[i]. としている.) -- mki 2018-10-03 (水) 20:55:16

コメントお名前NameLink

リロード   新規 編集 差分 添付   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: 2018-10-03 (水) 20:55:16 (232d)