
PICマイコンをはじめるにあたって、アセンブラかC言語、どちらにしようか迷っていたところ、下記の知恵袋で「まだ、C言語に手を出していないのであれば、絶対にアセンブラーから学んで下さい。」
ttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1386032198
と、書いてありました。実は以前よりC言語を勉強していたのですが、どちらにすればよいですか?
詳しくは上のサイトを見て頂きたいのですが、この知恵袋の回答者の方が言う「構造体・ポインター」の直前、アドレス・バイトとビット付近で現在つまずいていて、PICとまとめてC言語の書籍で補おうとしていたのですが、タイミングとしてはちょうど良いでしょうか?
C言語のレベルとしては、プログラミングで必ず出てくる、文章表示と繰り返し・条件分岐・論理演算くらいしかわかりません。
C言語とアセンブラ、現在の自分にどちらの方が適当かご教示ください。
No.3ベストアンサー
- 回答日時:
「繰り返し・条件分岐・論理演算」が分かっているならとりあえずプログラミングの入門は済んでいるようですね。
この辺でアセンブラに手を出すのは面白いと思います。ただ、アセンブラを学ぶにあたってPICマイコンは最悪です。
kabasanさんも「苦行以外の何物でもなく」とおっしゃっていますが、PICのアーキテクチャ(構造)は最近の流行から外れており、非常に癖があります。
私もPICはよく使っていますが、パズルとしての楽しさを求めてアセンブラを書いているように思います。
癖の詳細については割愛しますが、ざっと言うと「レジスタが1つのみ」「命令とデータのアドレスが別」「命令数が35個などと少ない」あたり。
なおこれはPICのうち、ベースライン・ミッドレンジ・Enhancedミッドレンジ・ハイエンド(PIC18)に当てはまります。
他の、PIC24・PIC32については上記の癖はありませんが、これらのPICはマイナーなので、あえてそれらを選ぶ理由はないように思います。
(PICを選ぶ理由は情報の多さと入手性のよさが主なので)
命令セットが素直なマイコンとしては、AVRマイコンが良いでしょう。PICに比べて情報が少ないのが難点ですが。
またARM(特にThumb命令セットのCortexM0(+)あたり)もよいですが、こちらも情報が少ないですし高性能なゆえの難解さがあります。
マイコンにかぎらずアセンブラを学びたいならx86という手もなきにしもあらず。命令セットは非常に複雑ですが、その分かゆいところに手が届く便利さがあります。情報が多いのも嬉しいところ。
ご回答頂きありがとうございます。
AVRも考えたのですが、まさかPICがそこまで癖があるとは思いませんでした。
とても興味深く、参考になります。
少し検討してみようと思います。ありがとうございました。
No.2
- 回答日時:
組み込みマイコンではアセンブラの知識は必須と言っても良いです。
が、アセンブラ覚えてからCに移行するのって案外できないですよ。
覚えて慣れてしまった環境からはなかなか抜け出せないものです。
Cで始めて、必要に迫られたときに渋々アセンブラ勉強すればいいんじゃないでしょうか。
ビット、バイト、アドレスに至ってはCかアセンブラかなんて関係のないもっと低次元な話です。
それよりも私が「お勧めしない」のは、PIC16F84A等の化石と呼んでも良いくらいのマイコンを使うことです。
こいつのアセンブラなんて苦行以外の何物でもなく、趣味であっても時間の無駄です。
慣れた人なら使ってもいいですが、初心者には全くお勧めできません。
PICにもいろいろあるので、そのあたりも調べてみてください。
ご回答頂きありがとうございます。
お勧めされないというのは、PICの古いバージョンということですか?
ではMicrochipの提供する最新のモノであれば大丈夫ということなのでしょうか?
無知ですみません。
少し自分で調べてみようと思います。ありがとうございました。
No.1
- 回答日時:
目指すところ、PICマイコンを学ぶ目的は何でしょう?
それによると思います。
それと何か目的があってC言語を学んでおられるのでしたら、あれこれ手を出さずきちんとC言語を学ばれた方がよいです。
C言語を学ぶこととは別に、これと並行してマイコンの仕組み、演算装置の基礎的部分を学びたいということでしたらレジスタを意識して使うアセンブラが適しています。
中途半端な状態、特に構造体やポインタについてきちんと取り扱い方を理解していない状態でマイコン上でC言語を使うのはよくないです。
参考まで。
ご回答頂きありがとうございます。
目的は両者とも、○○を作ってみたい!という知的好奇心で始めました。危ない理由ですね(笑)。
とりあえず、きちっと目標や期間など決めて検討してみようと思います。
参考になります。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 哲学 日本語は 言語類型として あたかも始原のごとくである 3 2022/05/29 04:41
- C言語・C++・C# アセンブラ指令 3 2023/06/17 14:47
- 日本語 日本語のアクセント 1 2022/05/12 13:26
- その他(言語学・言語) ピダハン語 2 2022/07/14 12:41
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(言語学・言語) 外国語問題 1 2022/07/21 15:21
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- C言語・C++・C# C言語について。 3 2022/11/05 20:30
- 哲学 日本語は論理表現にふさわしくないか の問題です 4 2022/06/25 03:56
- C言語・C++・C# プログラミング言語「C#」の難易度ってどれくらいですか? 4 2022/05/12 19:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
CSVファイルの複数行削除
-
数学、プログラミング、物理、...
-
パイソンのソースコードをChatG...
-
pip --versionがエラーになる
-
pythonの実行に関する質問
-
OS入ってる機器のソフト・アプ...
-
Python 3.12.2 か一番最新のパ...
-
vba クリップボードクリアにつ...
-
ネットワークフォルダの中身を...
-
uwscでPauseキーが押されたら、...
-
アセンブリ言語について。
-
コトリン言語について。
-
Python... 環境設定 初心者です...
-
VBA 電話番号の正規表現について
-
Webサイト内に埋め込んだmp4動...
-
Pythonについて。
-
iOSゲームアプリが作りたいと思...
-
MOVEコマンドでサブフォルダー...
-
プログラミング言語のバージョ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
実行ファイルからソースはみれる?
-
アセンブラ言語がわかりません。
-
[C言語→アセンブリ言語]はどう...
-
アセンブラの配列処理
-
素朴な疑問 (C言語とアセン...
-
アセンブラwordという単位
-
PowerPC用逆アセンブラを知りま...
-
アセンブラエディタ
-
このアセンブラの意味を教えて...
-
PICはアセンブラとC言語のどち...
-
MPLAB IDE v8.92アセンブラにつ...
-
x86系でリアル←→プロテクトモー...
-
メモリアドレスについて
-
素数を求めるプログラム(アセン...
-
アセンブラで割り算
-
アセンブラのリンカのダウンロ...
-
【H8マイコン】HEWで埋め込みア...
-
アセンブラーのプログラムに関して
おすすめ情報