- 締切済み
アセンブリ言語を学ぶときに必要な知識を教えてください。
アセンブリを勉強しようと思います。かなり難しいようなので、ある程度知識が必要と思われます。 なのでどんな知識が必要でしょうか? よろしくお願いします
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- murashin3
- ベストアンサー率42% (55/129)
アセンブリはマシン語を単語に置き換えただけのようなものなので、 CPUのアーキテクチャに大きく依存します。 最近のCPUはそもそも高級言語と高性能なコンパイラがあることを 前提にした設計になっているので、アセンブリでのプログラムは 非常に困難です。 高級言語が普及する前(20年ぐらい前?)からあるような 古い8ビットマイコンならCPUの構造自体がハンドアセンブリを 想定した造りになっているので習得はずいぶん簡単になります。 現在も良く使われるマイコンとしては、PICマイコンは 比較的アセンブラでのプログラミングが容易で、参考書も多数あります。 このあたりの書籍で勉強することから始めて見られるのが良いのではないでしょうか。
- mayan99
- ベストアンサー率22% (72/326)
ハード(CPUの機能、外部回路の機能)を知らないといけません。 ワンチップCPUなどは、特に入出力ポートの設定、タイマー、AD変換などの機能を使いますから、機能を使うための初期設定が必要であり、CPUのハードウエアマニュアルをよく読む必要があります。 簡単な機能(例えばLEDを点灯、モーターを回す)は、簡単に作れますが、複雑な機能をさせるプログラムは、割り込みやサブルーチンを多用しないといけません。 どんなプログラム(制御)をするか分かりませんが シフト、bit操作、 ソフトタイマーを作る(一定時間で割込みをかけカウントする) などいろいろテクニックが必要です。 メインプログラムと割込間でデータのやり取りを行うため メモリに情報を書き込みなどの方法も必要です。 頑張ってください。 なお、私はアセンブラしかできなくC言語は全く分かりません。
- nerosuke
- ベストアンサー率33% (39/115)
必要なのはハードの知識だと思いますが、まずやってみるのがよろしいかと思います。 とりあえず8086をいじって見るのが良いと思います。 参考サイトは http://www7.plala.or.jp/keny01/asm/dos/index.html#0 http://wisdom.sakura.ne.jp/programming/asm/index.html 参考書籍は蒲池輝尚氏の 「はじめての8086」と「はじめてのMASM」が解りやすいと 思います。 個人的には「はじめての8086」をお勧めいたします。 ただお解りかと思いますが、アセンブリはハードによってレジスタ等 異なる為、汎用性はありませんよ。 只、ニーモニックやセグメントの概念なんかを学ぶには良いかと思います。
- Yeti21
- ベストアンサー率47% (396/830)
なぜアセンブリ言語を勉強しようと思ったんでしょうか? 問題は、アセンブリ言語で何をするのかですね。 今時アセンブリ言語を使うのは結構特殊な用途になります。 ハードウェアの制御系とかが多いように思います。 そうすると、ハードウェアがどのようにして動作するのか、 原理から制御方法まで知らないとプログラムは組めません。 レジスタやメモリ管理といっても実行環境によって全く変わってきます。 どんな環境で、何をするのかによって必要な知識は随分と違ってきます。 まず、そのあたりを整理するところから始めないといけないと思います。 それから、せっかく検索エンジンがあるのですから、色々検索してみると 色々なパターンで結構な量の情報が得られると思います。 そういうのもどんどん活用しましょう。
- okg00
- ベストアンサー率39% (1322/3338)
・ビット演算 ・ハードウェア(レジスタ構成など) あとは発想力かな。
お礼
ありがとうございます。 参考になります