• 締切済み

アセンブリ言語を学ぶときに必要な知識を教えてください。

アセンブリを勉強しようと思います。かなり難しいようなので、ある程度知識が必要と思われます。 なのでどんな知識が必要でしょうか? よろしくお願いします

  • 94rlr
  • お礼率34% (9/26)

みんなの回答

  • murashin3
  • ベストアンサー率42% (55/129)
回答No.5

アセンブリはマシン語を単語に置き換えただけのようなものなので、 CPUのアーキテクチャに大きく依存します。 最近のCPUはそもそも高級言語と高性能なコンパイラがあることを 前提にした設計になっているので、アセンブリでのプログラムは 非常に困難です。   高級言語が普及する前(20年ぐらい前?)からあるような 古い8ビットマイコンならCPUの構造自体がハンドアセンブリを 想定した造りになっているので習得はずいぶん簡単になります。 現在も良く使われるマイコンとしては、PICマイコンは 比較的アセンブラでのプログラミングが容易で、参考書も多数あります。 このあたりの書籍で勉強することから始めて見られるのが良いのではないでしょうか。

  • mayan99
  • ベストアンサー率22% (72/326)
回答No.4

ハード(CPUの機能、外部回路の機能)を知らないといけません。 ワンチップCPUなどは、特に入出力ポートの設定、タイマー、AD変換などの機能を使いますから、機能を使うための初期設定が必要であり、CPUのハードウエアマニュアルをよく読む必要があります。 簡単な機能(例えばLEDを点灯、モーターを回す)は、簡単に作れますが、複雑な機能をさせるプログラムは、割り込みやサブルーチンを多用しないといけません。 どんなプログラム(制御)をするか分かりませんが シフト、bit操作、 ソフトタイマーを作る(一定時間で割込みをかけカウントする) などいろいろテクニックが必要です。 メインプログラムと割込間でデータのやり取りを行うため メモリに情報を書き込みなどの方法も必要です。 頑張ってください。 なお、私はアセンブラしかできなくC言語は全く分かりません。

  • nerosuke
  • ベストアンサー率33% (39/115)
回答No.3

必要なのはハードの知識だと思いますが、まずやってみるのがよろしいかと思います。 とりあえず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)
回答No.2

なぜアセンブリ言語を勉強しようと思ったんでしょうか? 問題は、アセンブリ言語で何をするのかですね。 今時アセンブリ言語を使うのは結構特殊な用途になります。 ハードウェアの制御系とかが多いように思います。 そうすると、ハードウェアがどのようにして動作するのか、 原理から制御方法まで知らないとプログラムは組めません。 レジスタやメモリ管理といっても実行環境によって全く変わってきます。 どんな環境で、何をするのかによって必要な知識は随分と違ってきます。 まず、そのあたりを整理するところから始めないといけないと思います。 それから、せっかく検索エンジンがあるのですから、色々検索してみると 色々なパターンで結構な量の情報が得られると思います。 そういうのもどんどん活用しましょう。

  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

・ビット演算 ・ハードウェア(レジスタ構成など) あとは発想力かな。

94rlr
質問者

お礼

ありがとうございます。 参考になります

関連するQ&A

  • アセンブリ言語について。

    アセンブリ言語という低水準言語は、なぜ必要なのでしょうか?それと、ニーモニックとは何でしょうか?ご教授いただけないでしょうか?すみません。よろしくお願いします。

  • アセンブリ言語について。

    アセンブリ言語という低水準言語は、なぜ必要なのでしょうか?それと、ニーモニックとは何でしょうか?ご教授いただけないでしょうか?すみません。

  • アセンブリ言語について

    アセンブリ言語の勉強をしたいと思っています。 例えば、CやJava,などはコンパイラを使ってコンパイルをしますよねぇ。同じようにアセンブり言語にもアセンブラというものがあるのでしょうか? フリーでそのようなアセンブラ(コンパイラ?)があるのなら教えてくれないでしょうか?できれば、AT互換のアセンブリ言語の仕様書が書かれているサイトでもあれば教えてください。(できれば、日本語で・・・) それと アセンブラ言語を高水準言語と比較した場合の利点について教えてください。 色々とすいません。どうかよろしくお願いします。

  • アセンブリ言語について。

    アセンブリ言語がアセンブラ&実行出来るサイトを知らないでしょうか?また、アセンブリ言語のプログラムが載っているサイトを知らないでしょうか?教えて頂けると幸いです。

  • プログラミングのアセンブリ言語のアセンブリとはどう

    プログラミングのアセンブリ言語のアセンブリとはどういう意味なんでしょうか?

  • アセンブリ言語について

    現在電気工学科の学生です。アセンブリ言語の講義を受けているんですが、試験で単位が取れる自信がありません。。。全くわからないことだらけです。C言語に関してはほんの触りだけ勉強したことがありますが、アセンブラ言語については全くの素人です。演習問題があるんですが、色々本等で探しても見つかりませんでした・・・私の努力不足かもしれませんが、問題の解答と解説を教えて欲しいです。 問題は→メモリアドレス3000H~30FFHの内容(データ)を2000Hから始まるメモリアドレスにコピー(格納)するプログラムをアセンブリ言語で書いてください!それとこの問題には参考のためにアセンブリ言語の命令の例があるんですが LD A、(BC) LD A、(DE) LD A、(HL) って書いてあるんですが、このBCやDE,HLはどんな意味があるんでしょうか?初歩的なことばかりで申し訳ありませんが、ご教授よろしくお願いします。

  • ■ アセンブリ言語の入門書について ■

    アセンブリ言語の入門書を探しております。 アセンブリ言語を通して、コンピューターの動きを勉強したいと考えています。 特にCPUの種類は問いませんが、x86に繋がるような内容を希望しています。 候補としましては、「はじめて読む8086」や「アセンブリ言語スタートブック」が上がっています。 1.図解を主に用いて分かりやすく解説している 2.CPU内の各種回路をどのように流れて処理をするかを図を用いて解説している 以上の条件に合ったような書籍をお心当たりのある方、教えて頂ければ助かります。 よろしくお願いいたします。

  • アセンブリ言語について。

    アセンブリ言語と機械語は一対一で対応しているので、実行ファイルがあれば逆アセンブルすると 完全に元のアセンブリコードが復元できるのでしょうか?教えていただけないでしょうか?すみません。

  • アセンブリ言語の書き方が分かりません。

    アセンブリ言語の書き方が分かりません。 R0が示す番地以降のR2が示すバイト数をR1が示す番地以降に転送 これをアセンブリ言語で書くにはどうしたらいいでしょうか? 教えてください。

  • アセンブリ言語について。

    アセンブリ言語の命令一覧を教えていただけないでしょうか?すみません。

専門家に質問してみよう