こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

パソコンについて詳しくなりたい

パソコンに詳しくなりたいのですが、どうすれば詳しくれるのでしょうか?今勉強しているのでは、C言語、C++なのですが、パソコンに詳しくないので、C言語、C++は難しいとは思うのですが。。。C言語についてのパソコンについてこれは知っておいたほうがいいような何か詳しくなれるサイトや本があれば教えてください。

投稿日時 - 2009-04-28 08:34:12

QNo.4915021

すぐに回答ほしいです

質問者が選んだベストアンサー

>PICをアセンブラーで動作させて見ることです。
ちと反論っぽくなって申し訳ないですが、PICのアセンブラはバンク切り替えが独特すぎて初心者が触るにはよろしく無いと思っています。安価に色々出来るので遊ぶには、すばらしいマイコンだとは思うんですが。
どうせ触るなら、命令コードがシンプルでバンク切り替えという姑息なことをしなくても良いルネサスH8マイコンとかをお勧めしたいです。
アセンブラを触ることで見えてくることもあるのですが、普通のパソコンのx86系CPUは機能が多すぎてアセンブラの勉強として最初に選ぶには相応しくないと思います。

ってことでH8マイコン入門もついでに紹介しておきます。
http://monoist.atmarkit.co.jp/fembedded/index/h8.html
「H8マイコン完全マニュアル」
http://www.amazon.co.jp/dp/4274079104

H8マイコンといえば秋月通商ですが、秋月通商で買うならH8/3069Fがお勧めです。
http://akizukidenshi.com/catalog/g/gK-00168/
理由はRAM容量が多い(最重要)。LED、LCD、SW、LAN等色々載っていてすぐ使えます。
開発環境は秋月のをそのまま使うよりは、独自に構築したほうが良いでしょう。

投稿日時 - 2009-04-29 17:24:29

ANo.8

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.7

だんだん調子が悪い様相を呈していますが、ルネサスのマイクロコンピュータとHUDIエミュレータの組み合わせないしは、PICマイコンとICEか無償シミュレータがお勧めです。

一番判りやすいのは、後閑さんあたりの書籍を見て、PICをアセンブラーで動作させて見ることです。
真剣なプログラムは不必要です。LEDをちかちか点ける程度で十分です。

ルネサスは安いエミュレータ(ICEもどき)を出していますので、北斗電子あたりから対応基板を購入し、簡単なプログラムを書いて見ることです。こちらは、HEWのC言語が使えて便利そのものです。
でも、割込みの概念や、ハードの入出力がたたけるので、PCのそれがどうなっているかは別にして、基礎的な動作がどうなっていうのか理解する上で役立ちます。

足し算は、アセンブラーでも命令がありますが、PICでは、掛け算が出来ない石があります。どうやって掛け算、割り算をするのか?浮動小数点はどうやって処理するのか?など、簡単な数値演算ですら、アセンブラーでは大仕事になります。
割り込み発生時のレジスターの退避と、戻りなども自前で書く必要がありますが、これらは、C言語で書いていると意識しなくても書けてしまう部分で、理解を深めるには最も効果的だと思います。

OSに関しては、RTOSなどを、使って、メモリは保護されていないけれど、処理が同時に動作する様を観察しながら作成すると、非常にOSに対する理解が深まります。

C言語は、非常に高級言語です。正直PCが何をしているかは、C言語レベルでは理解できません。意味不明なことを次々にやることになり、気分が悪くなる一方です。

ぜひ、マイコンをアセンブラーで動作させてみることをお勧めします。

投稿日時 - 2009-04-29 10:37:20

ANo.6

そもそもどの程度詳しくなりたいのでしょうか。
漠然とした目標では勉強のやり方も定まらないでしょうし、基本情報技術者試験合格をとりあえずの目標に勉強してみてはどうでしょう。
合格したからといってアプリケーションが開発できるわけではないのですが、基本中の基本になる2進数から、ハードウェア、ソフトウェアまでかなり広範囲の知識を要求されます。
少なくとも一般人からみれば「コンピュータに詳しい」といえるでしょう。ただし、技術者としては基本知識の一部に過ぎませんが。

丁寧な解説のある参考書を一冊買っておけば、まぁ何とかなるでしょう。

投稿日時 - 2009-04-29 10:09:31

ANo.5

zwi

>回答ありがとうございます。これはVC++でも使えますか?
VC++はWindowsで動くアプリを作るためのものです。対応して無いOSやCPUの元では動きません。
特に組み込み系はOSが無いあるいはLinuxやTron他のOSの配下ですので問題外です。専用のコンパイラあるいはgccを使います。
http://ja.wikipedia.org/wiki/GNU%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3
CPUがARM7だとアセンブラとC言語が普通使われると思います。このインターフェイスの特集だと「IAR Embedded Workbench」と言う統合開発環境を学習に使うようです。ちなみにVC++のVisualStudioも統合開発環境の一種です。
全て無料で使えるgcc等を使って開発環境を構築することも可能です。

投稿日時 - 2009-04-28 22:50:30

ANo.4

zwi

訂正。インターフェイスの新人特集は3月号からでした。

# 3月号 はじめてのマイコン活用 基礎の基礎
http://www.kumikomi.net/interface/contents/200903.php
# 4月号 組み込みCプログラミングを基本から攻略する!
http://www.kumikomi.net/interface/contents/200904.php
# 5月号 付属ARM基板で学ぶ 実践マイコン活用入門
http://www.kumikomi.net/interface/contents/200905.php
# 6月号 ARMマイコン基板をとことん使いこなそう!
http://www.kumikomi.net/interface/contents/200906.php
の順でした。失礼しました。

付録基板はC言語(組み込み用)でプログラミングできるものですよ。

投稿日時 - 2009-04-28 12:47:52

お礼

回答ありがとうございます。これはVC++でも使えますか?

投稿日時 - 2009-04-28 22:08:36

ANo.3

zwi

>今持っている本はC言語入門シニア編で、大体は読み終えてます。あと、 DirectX9実践プログラミングを少々、C++はこれならわかるC++挫折しないプログラミング入門を少しかじった程度です。

全然OSやハードウェア関連の本を読まれてませんね。
私の紹介した本も未読でしょうか?
「APIで学ぶWindows徹底理解―できるプログラマになるための」
http://software.nikkeibp.co.jp/software/backno/04apimook2.html
他にも入門になる本を紹介しておきます。
「CPUのきもち―IA‐32アーキテクチャーとWindowsXPの不思議な関係」
http://book.mycom.co.jp/MYCOM/html/book/4-8399-1728-0/index/4-8399-1728-0.html
「CPUの謎―CPUの中で何が行われているか?」
http://www.amazon.co.jp/dp/4881664549
「Windowsはなぜ動くのか」
http://ec.nikkeibp.co.jp/item/books/P81490.html
あたりのを試し読みしてから購入してください。

>これは余談ですが出来れば、ゲーム関係か組み込み系のプログラマになりたいです。
>でもピラミッド順どうりならまずはハードウェアから知りたいです。細か
く言うとC言語やC++に役に立つことを学びたいです。

組み込み系とゲームは昔なら普通に近い存在でしたが、昨今はゲームが高度化して大分と違う方向性を帯びてきました。なので両方を学ぶと困難と言うか覚えることが多くて苦労すると思いますよ。組み込みも奥が深いです。ハードを学ぶには最適ですけどね。

組み込み系なら有名な雑誌にCQ出版のInterfaceという雑誌があります。
http://interface.cqpub.co.jp/
4月号から新入社員特集と言うことでマイコン入門を特集していますので参考にしてください(5月号にマイコンが付録についてます)。
付録付きの5月号
http://www.amazon.co.jp/dp/B001WQKIJODB001WQKIJO

投稿日時 - 2009-04-28 12:42:22

ANo.2

>パソコンに詳しくなりたいのです
パソコンのハードウェアについて詳しくなりたいのか、ソフトウェアについて詳しくなりたいのか、どちらかですか?

もし、ソフトウェアについて詳しくなりたいと仮定して、何のソフトウェアについて詳しくなりたいのですか?例えば「OSについて」なのか「アプリケーションについて」なのか「プログラミング言語について」なのか。

現状の質問者さんには「決定的に足りてない部分」があります。

それは「パソコンの、何について詳しくなりたいのか、自分で判ってない」って事です。

「パソコンの知識」と言うのは、ピラミッド構造になっていて、下から順々に積み上げていかないといけません。

          [[[[プログラム技能]]]]
        [[プログラミング言語の知識]]
      [[アプリケーションについての知識]]
    [[[[[[[[[[[OSについての基礎知識]]]]]]]]]]]
  [[[[[[[[[[[[[BIOSについての基礎知識]]]]]]]]]]]]]
[[[[[[[[[[[[[[ハードウェアについての基礎知識]]]]]]]]]]]]]]

基礎からの積み上げを怠ると「基礎が弱くて、上を支えられず、理解不能な状態に陥る」でしょう。

基礎となる部分は「それが何の為に存在していて、何をしているのか」程度の「困らない程度に知っているレベル」で構いません。

>C言語、C++なのですが、パソコンに詳しくないので、C言語、C++は難しいとは思うのですが

最初は「ピラミッドの一番底辺の部分」から手を付けましょう。

パソコンに詳しくないのに、いきなりピラミッドの上層部分から手を付けても「基礎が出来てないのが原因で、半日も経たずに、超えられない壁に当たって立ち往生」するのが関の山です。

てゆ~か、ピラミッドに手を付ける前に「自分は何を知らないのか、何に関して無知であるのか」を理解する必要があります。

そのためには、まず「パソコン」と言う「漠然とした存在」を「機能、構造ごとに切り分け」して「どういうモノから成り立っているのか」を理解しましょう。

そして、切り分けした個々の「モノ」について、自分がどれだけの知識を持っているのか、自己分析しましょう。

そうすれば「何が足りないのか」「何について学べば良いのか」「それを学ぶための基礎知識は何が必要なのか」が見えてくるでしょう。

投稿日時 - 2009-04-28 11:53:38

お礼

回答ありがとうございます。
>パソコンのハードウェアについて詳しくなりたいのか、ソフトウェアについて詳しくなりたいのか、どちらかですか?
もし、ソフトウェアについて詳しくなりたいと仮定して、何のソフトウェアについて詳しくなりたいのですか?例えば「OSについて」なのか「アプリケーションについて」なのか「プログラミング言語について」なのか。

すべてです。
でもピラミッド順どうりならまずはハードウェアから知りたいです。細かく言うとC言語やC++に役に立つことを学びたいです。

投稿日時 - 2009-04-28 12:12:20

ANo.1

zwi

とりあえず今もっている本とか参考にしたサイトを教えてください。
どのぐらいのものを読んだか知りたいです。
あと読んでどのぐらい自分は理解出来たかのレベルを五段階評価してください。

投稿日時 - 2009-04-28 11:38:45

お礼

回答ありがとでうございます。今持っている本はC言語入門シニア編で、大体は読み終えてます。あと、DirectX9実践プログラミングを少々、C++はこれならわかるC++挫折しないプログラミング入門を少しかじった程度です。評価は自分的には2~3くらいだと思います。これは余談ですが出来れば、ゲーム関係か組み込み系のプログラマになりたいです。

投稿日時 - 2009-04-28 11:54:54

あなたにオススメの質問