ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

30日でできるのか・OS自作入門コミュの・・・2日目で挫折しそうです。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
2日目のレジスタの説明を読んでもさっぱり意味がわかりません。
何を読んでいるのか、全くわかりません。
このまま続きを読みすすめるべきでしょうか?
それとも少し遠回りして何かしら別の勉強をした方がよいのでしょうか?

コメント(14)

レジスタ=そろばんで、演算したり、記憶したりしてくれます。
似たようなものでメモリはノート、紙で書付けることはできますが
演算などはしてくれません。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1472363

次のstepに進んでみれば、また違うことが判ると思います。
自分のポリシーを破ってあえてちょっとだけ書き込みます。
おそらく分からないのはp.32からだと思うのですが、
その何行目から分からないのでしょうか?
教えていただいても有効なアドバイスができるわけではないの
ですが・・・。すみません。
無理にがんばって1日目から読まずに、興味のありそうなところからやるという方法もありますし、ブートローダをブラックボックスとして扱って起動さえしちゃえば OK という考え方もあります。
p.32の「 さて、〜〜」から書いている内容がよくわかりません。

一体何の話をしているのか理解できません。
猫王さんありがとうございます。

ご指摘の個所は、
http://book.mycom.co.jp/user/preview/4-8399-1984-4/
にて出版社自身が公開している部分でもあるので、ここで多少
抜粋しても問題は起きないだろうとタカをくくって、いろいろ
質問します。

でも、答えるのがむずかしかったり、面倒になったりしたら、
どうぞ気兼ねなく無視してください。僕がこれ以上猫王さんに
ご迷惑をおかけするのは本意ではありませんので。

指摘された個所から文章をいくつか挙げると、以下のようになります。
(1)さて、AXやSSの説明です。
(2)CPUにはレジスタという記憶回路がありまして、・・・変数です。
(3)代表的なレジスタは次の8つです。
(4)それぞれのレジスタの名前には本名が・・・おきましょう。

この4つの文章のうち分からないのはどれですか?それとも
わからないのはもう少しあとのほうなのですか?
4つに文章が限定されていますが
ようは要点はそこだけということなのでしょうか?

全体的に話がわかりません。
ADD CX,0x1234 は 81 C1 34 12 という4バイトの命令
ADD AX,0x1234 は 05 34 12 という3バイトの命令

ADDって何?
なんで4バイトから3バイトになるの?
変数の話はどこにいったのだろう???
○バイトの命令ってどういう意味なんだろう????


こんな感じでサッパリな文章がちりばめられています。
まずはCPUの構造と動作を理解されているかどうかが肝心だと思いますが

http://ja.wikipedia.org/wiki/CPU
なんだ〜、結構分かっておられるではありませんか。
つまり分からないのは、p.32の22行目(空行数えず)の
「一例を挙げれば」のところからなのですね。

>全体的に話がわかりません。
こういってしまってはそれでおしまいです。分からないところを
正確に特定して説明しないと、他の方が「そのまま読み進める
べき」か「他の本を読むべきか」のアドバイスはできないと
思われます。

>ADDって何?
ADDが何かをここで説明することはできますが、今ここでそれにこだわると本筋を見失います(それはp.39で説明されています)。

>なんで4バイトから3バイトになるの?
本文にあるとおり、ADD命令でAXを使うかCXを使うかで機械語の
命令長が変わるのです。なぜそうなのかって、それはインテルの
設計者がそのようにCPUを作ったからであって、他の誰にも説明
できません。

>変数の話はどこにいったのだろう???
どこにもいっていませんよ?本文に書いてあるように、AXとCXの
違いは単に名前だけではないことの例として挙げられているだけ
です。

>○バイトの命令ってどういう意味なんだろう????
機械語に何バイト要するか、ということです。むしろなぜここで
「?」が4つも並ぶほど分からないのかが、僕には分かりません
でした。

この説明でも分からないかもしれませんが、これくらいの理解が
あるのなら、分からないところはゆっくりていねいに数回読み
直して、それでも分からなければとりあえず飛ばして、先に
進んでしまっても問題はなさそうに思えます。しかし最初の
機械語の部分の理解があいまいなままだと、おもしろさは半減して
しまいます。安易に読み飛ばすことはおすすめしません。

分からないところは、個所を正確に特定して、wikiやここで質問
すれば、誰かがヒントをくれるかもしれません。
先に読み進めているのですが
結局、以前かかれていた内容がほとんど頭にはいっていたので
読んでいてもサッパリになってしまいます。
まるで辞書を引くが如く・・・調べる事が目的になりかねないです。

あと個人的には厳密で堅苦しい文章の方が頭に入りやすいので
理解が深まりにくい要因になっています。

「〜だから〜だ」「もちろん〜」とかいう言い回しが
理解できていない人間にとっては「?」になってしまいます。
自分だけかもしれませんが・・・
猫王さんへ。
おっしゃりたいことがだんだん言い訳めいてきているように
思います(もしくは苦情?)。猫王さんは何も悪いことをしている
わけではないのですから、そんなに言い訳しなくてもいいのです。

>先に読み進めているのですが
>結局、以前かかれていた内容がほとんど頭にはいっていたので
>読んでいてもサッパリになってしまいます。
>まるで辞書を引くが如く・・・調べる事が目的になりかねないです。
うーんそれなら、ちゃんと頭に入るまでていねいに読むべきだった
のでは?それをしないで先を読むのは猫王さんにはあっていなかっ
たのでは?としか言えないと思います。

>あと個人的には厳密で堅苦しい文章の方が頭に入りやすいので
>理解が深まりにくい要因になっています。
そうですか。・・・それならご自身で要約をかねてお好きな文体に
書き直してみたらどうですか?くらいのことしか僕には提案でき
ません。そういうblogをつけている方もおられるようです。

とにかく読むのが苦痛なら、無理して読まないほうがいいかと
思います。苦痛なことをしても頭には入りません。疲れるだけです。
僕としても猫王さんを苦しませるために書いたわけではありません。
とても残念で申し訳ないですが、あきらめも必要かと思います。
何度読んでも、
当方が納得できる水準には達しないと判断いたしましたので、
別の本で知識を補う事にいたしました。
僕は、アセンブラについての知識が全く無い状態でこの本を読み始めました。レジスタやセグメントなど初めての用語ばかりで結構戸惑った記憶があります。

OS自作入門はリファレンスのように体系的にまとまっていないので、1からちゃんと勉強したいと思っている人には物足りない内容かもしれません。

そんなわけで、僕はこの辺を補完的に使いながら読み進めてみました。
アセンブラ入門
 http://www5c.biglobe.ne.jp/~ecb/assembler/assembler00.html
最適化の為のアセンブラ入門
 http://ray.sakura.ne.jp/asm/
アセンブリ言語入門
 http://www.wisdom.sakura.ne.jp/programming/asm/

書籍はアセンブリ言語の教科書、はじめて読む486を読みました。オススメです。

かなり遠回りになるかもしれませんが、しっかり勉強したいなら、僕のような方法もありますよ。
ちょっと遠回りにアセンブリブリしてみます。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

30日でできるのか・OS自作入門 更新情報

30日でできるのか・OS自作入門のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング