• ベストアンサー

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

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

  • Dr_DAC
  • お礼率99% (133/134)

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

  • ベストアンサー
  • seastar3
  • ベストアンサー率69% (99/142)
回答No.1

基本的な仕組みを理解するには、情報処理技術者試験用のCASLアセンブラの勉強が有効だと思います。CASLは、仮想の8ビットCPUの言語ですが、アセンブラと機械語の原理を理解するのにふさわしく、そのプログラムの仕方が分かれば、32ビットCPUの機械語でも理解できます。 書籍ではありませんが、以下の機械語・アセンブラ学習のための教材を作っていますので、よかったら使ってみて下さい。 http://www.vector.co.jp/soft/win95/edu/se453553.html また、CASLアセンブラシミュレータであるWCASL-IIを次のURLから取って実習してみると理解が深まるでしょう。サンプルコードもたくさん付いています。 http://www.vector.co.jp/soft/win95/prog/se184950.html

Dr_DAC
質問者

お礼

ご回答、ありがとうございます。 「機械語のCPU動作説明プレゼンテーション」はご自身が作られたのですね。「WCASL-II」を用いて勉強させて頂きたいと思います。 CASLアセンブラの勉強が有効のようですので、CASLアセンブラを中心に書かれている「アセンブリ言語スタートブック」を検討したいと思います。 とても参考になる情報、大変助かりました。

関連するQ&A

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

    熱血!アセンブラ入門という書籍を借りてきたのですが、どこから、アセンブリ言語が組めるものをダウンロードすれば良いのでしょうか? また、また、そのダウンロードしたものは、独習アセンブラという書籍でも使えるのでしょうか?教えていただけると助かります。すみません。以下のURLです。 http://kozos.jp/books/asm/menu.html

  • CPUによって機械語だかアセンブリ言語が違うという

    CPUによって機械語だかアセンブリ言語が違うという解説をしている記事があったんですが CPUによってというのは、 intel sandylakeとAMD ryzen 3700x と使い分けろ という意味ではなく 32bit対応CPUintel pentiumと64bit対応CPUintel sandylake とで使い分けろという意味ですか?

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

    >2進数の羅列では人間にはあまりに読み書きしにくいからです。 >それを命令単位に区切って、英単語を元にした名前を与えたのが、 >アセンブリ言語です。 ニーモニックとは、その命令の名前の事です。 簡潔に要点がまとまっている、すばらしい説明ですね。その通りです。 これで理解できないなら、追加の説明のしようがありません。 (なお、このように、他人の発言は引用符を付けて引用すると、わかりやすくなります。是非そうしてください。) まあ具体例を挙げるならこんな感じ。 (機械語データ) (アセンブリ言語) b8 57 61 6b 61 mov $0x616b6157,%eax 53 push %ebx 50 push %eax ba 04 00 00 00 mov $0x4,%edx bb 01 00 00 00 mov $0x1,%ebx b8 04 00 00 00 mov $0x4,%eax 89 e1 mov %esp,%ecx cd 80 int $0x80 58 pop %eax 31 c0 xor %eax,%eax 5b pop %ebx c3 ret 人間がCPUを直接動かすプログラムを書こうとするとき、アセンブリ言語を使って書きます(右側の部分)。 mov $0x616b6157,%eax push %ebx push %eax mov $0x4,%edx mov $0x1,%ebx mov $0x4,%eax mov %esp,%ecx int $0x80 pop %eax xor %eax,%eax pop %ebx ret そしてこれをアセンブルすると、1対1対応した機械語のデータ列が出来ます。 それが b8 57 61 6b 61 53 50 ba 04 00 00 00 bb 01 00 00 00 b8 04 00 00 00 89 e1 cd 80 58 31 c0 5b c3 この部分。 機械語には改行なんてありませんから、実際は一連の b8 57 61 6b 61 53 50 ba 04 00 00 00 bb 01 00 00 00 b8 04 00 00 00 89 e1 cd 80 58 31 c0 5b c3 と言うデータ列になります。 これをCPUが実行していきます。 相当熟練した人で無ければ、このデータ列を見るだけでプログラム構造を理解する、というわけに行きません。 なので、人間が機械語レベルでプログラミングする際には、アセンブリ言語を使います。 ※この回答のプログラムはこちらから引用しました。 >31バイトでつくるアセンブラプログラミング アセンブラ短歌の世界 >https://book.mynavi.jp/support/pc/4946/c01_assembra.pdf で、機械語データは、なぜ、0と 1だけではないのでしょうか?教えていただけないでしょうか?すみません。

  • アセンブリのプログラムです。

    アセンブリのプログラムで質問があります。cのプログラムのオブジェクトファイルを生成して、objdumpというコマンドでアセンブリ言語を表示させてみたのですが、全然分からなくて、困っています 。どうか、アセンブリプログラムの、解説をよろしくお願いします。できれば、1文1文解説してもらえるとありがたいです。あと、スタックの動き、確保などの解説もあるとありがたいです。よろしくお願いします。 cのプログラム int fact(int p) { if(p<=1) return 1; else return fact(p-1); } アセンブリのプログラム push %ebp mov %esp,%ebp sub $0x8,%esp cmpl $0x1,0x8(%ebp) jg 15 <_fact+0x15> movl $0x1,-0x4(%ebp) jmp 24 <_fact+0x24> mov 0x8(%ebp),%eax dec %eax mov %eax,(%esp) call 0 <_fact> mov %eax,-0x4(%ebp) mov -0x4(%ebp),%eax leave ret nop nop nop

  • パソコンの本で、漫画で解説しているシニア向けの超簡単な入門書を探してい

    パソコンの本で、漫画で解説しているシニア向けの超簡単な入門書を探しています。 パソコンの入門本で、以前本屋で見かけたんですが、漫画や図で解説してある 本を探しています。 1年ほど前近所の本屋で立ち読みして、購入しなかったのですが、ほしくなりました。 思い出せる特長は  漫画と図解で解説している。  表紙が赤い  本の名前は「○○○パソコン○○○」というような…  解説にマウスとキーボードの両方が書いてあり  わかりやすかった 宜しくお願いします。。

  • マイコンキットを使った電子工作を始めるにあたって

    それに先立って書籍と電子工作を通して電子回路の勉強をしようと思うのですが、 アナログ回路とデジタル回路のどちらの勉強から始めた方が良いでしょうか? また、マイコンキットの使用言語にはアセンブリ言語とC言語があるようですが、どちらのものを選べばよいのでしょうか? 何かアドバイスを頂ければ幸いです。よろしくお願いいたします。

  • 第一種電気工事士の勉強法

    第一種電気工事士の勉強法 現在第一種電気工事士の資格を取得することを目指しています。 電気回路の話は分かりますが、結線図は読めません。 また、工具の取り扱いも全く分かりません。 そこで、第一種電気工事士関連の書籍として ・結線図の読み方を分かりやすく解説してあるもの ・工具の扱いを図解してあるもの を探しています。 全く別の書籍を2冊購入することになっても大丈夫です。 第一種電気工事士に詳しい方、アドバイスをお願いできないでしょうか。

  • 独学でC言語を学ぶ際に最適な書籍

    プログラミングのプの字も知らないような全くのド素人が独学でC言語を学ぶ際、 全くのド素人や初心者でも分かり易く理解出来る入門書や解説書をご存知でしょうか? プログラミング経験者の方の視点からのご意見を参考にさせて頂きたく、本質問を投稿致した次第でございます。 書籍の価格や量に関してはどういったものでも構いません。 何か良い書籍はございますでしょうか? 何卒宜しくお願い申し上げます。

  • やさしく楽しくプログラミングを学べる書籍を探しています

    やさしく楽しくプログラミングを学べる書籍を探しています プログラミングを学びたいんですが、メールかインターネット操作ぐらいでプログラミングは全くといってもいいほどやっていないので普通のプログラミング言語の解説書だと尻込みしてしまいます。 そこで「マンガ・たのしくよくわかるプログラミング入門」といったような漫画やイラストでやさしく解説されていて、未経験者でも楽しく、途中で投げ出さずに最後まで読みきり、学ぶことができるお勧めの書籍をご存知ですか? ご教授願います。

  • 自励式ブザーの駆動回路

    マイコンの評価基板を買ったのですが、回路図にある自励式ブザーの駆動回路の動きが分かりません。 パターンを追ったところ回路図どおりになっていて、トランジスタもマーキングを調べるとBC056Bである事が分かりました。 CPU_VDDは5V、BUZZER端子はマイコンのポートなので0V/5Vです。 そうすると、このトランジスタは動きませんよね? でもブザーは鳴ります。 この回路はどういう動きをするものなのでしょうか? ご教示ください。

専門家に質問してみよう