ここから本文です

アセンブリ言語を学びたいのですが、何から始めればいいでしょうか? やはりマイ...

hir********さん

2017/3/2119:22:44

アセンブリ言語を学びたいのですが、何から始めればいいでしょうか?
やはりマイコンでしょうか?Z80などが有名らしいですが…
それともDOSのdebugを使って練習するのもありでしょうか?

よくわからないので教えてください。

閲覧数:
140
回答数:
6

違反報告

ベストアンサーに選ばれた回答

sortanerdさん

2017/3/2402:38:28

Z80(8080系)は命令セットに癖がなく、適度に単純、情報も多いと、わりとおすすめできるのですが、実物の動作環境がまず手に入らないのが難点です。エミュレータで良いといえば良いのですが。
ゲームボーイのCPUがこれの系統なのでゲームボーイソフトを作ってエミュレータで動かすのも良いかもしれません。

DOSのdebugは最近のWindowsには付属していなかったと思います。
また、x86の命令セットは癖があり、非常に複雑なのが欠点です。ただし全体は複雑とはいえ別に全ての命令を使うわけでなし、癖のない分かりやすい命令だけ使っていくという手はあります。
情報が非常に多いのも嬉しい点です。
動作環境はPCでよいとはいえ、debugが使えないと簡単にアセンブルして実行できる環境は簡単には構築できないかもしれません。

他におすすめできそうなのはAVRとARMですね。

・AVRマイコン
入手が容易、環境構築にかかる費用が少ない、命令セットに癖がなく適度に単純と、利点が多くあります。
ただし最大の欠点として情報が非常に少ないので、あまり積極的にはおすすめしません。またハーバードアーキテクチャなのもアセンブリ言語を学ぶ上で欠点だと思います。
なおAVRとよく比較されるPICマイコンはアーキテクチャが単純ではあるものの非常に癖があり、他のアセンブリ言語に応用が効かないため、おすすめしません。
情報の多さは利点なのですが。

・ARM
最近流行りです。
命令セットは複数(64bit, 32bit, Thumb)ありますが、どれも癖がなく単純です。情報量はあまり多くはないですがAVRよりはあるかな。
環境はLinuxの動くRaspberryPiのようなボードもありますが、マイコンの方が扱いやすいでしょう。LPC1114やLPC800番台がおすすめです。

他、
H8は私はよく知らないのですが、日本製なので日本語の情報が得やすいのが利点だと思います。環境は、少なくともマイコン自体は入手が容易です。開発環境やプログラムの書き込みについては分かりません。
日本製では他にRL78・R8C・RXが新しいものです。ただどれも最初に扱うにはちょっと命令セットが複雑すぎるかなと思います。
CASLはちょっとWikipediaを眺めてみただけですが、なんというか、出題のためだけに作られている感じを受けます。これで何か実用のプログラムが書けるような気がしないんですよね…。周辺機能も文字列の入出力だけですし。

  • 質問者

    hir********さん

    2017/3/2719:39:38

    Z80やdebugはエミュレーターや情報も多くやりやすそうですね。やはりマイコンをいじるというのも良さそうです。いろいろ探してみようかと考えています。
    ご回答ありがとうございます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/3/28 22:23:54

皆さんありがとうございます。
よっくり考えてみたいと思います。
でもやっぱりマイコンが良さそうかな…

ベストアンサー以外の回答

1〜5件/5件中

並び替え:回答日時の
新しい順
|古い順

nic********さん

2017/3/2721:53:28

今アセンブラならPIC一辺倒。これしかない!

さん

2017/3/2201:00:38

特に使いたいCPUが決まっていないなら情報技術者試験のCASLを学んで雰囲気を掴むのはありですよ。さまざまなアセンブリ言語の最小公約数的な言語なのでシンプルだし、試験用の仮想言語なので解説書もすぐ見つかります。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

2017/3/2200:50:24

私としては、システムの全てが見えてビット操作なんかも実感出来るので、マイコンをいじくることをオススメします。

Z80は有名ですがいかんせん古いです。PC上でエミュレータで走らせるというのならそれでもいいですけれど、実機の調達も難しいのでは...(いまどきだとFPGA上に相当のCPUを構築しちゃうのが一番楽かも)

最近で入手容易なマイコンだと、H8とかPICとかAVRとかでしょうかね。H8はそろそろ命運尽きてきたかなぁ。PICはレジスタが少なくてメモリのページ切り替えがあったりするので私は面倒で好きじゃないです。AVRのアセンブラはよく知らない...

あ、ご存知とは思いますけれど、アセンブラってCPU毎、さらにはアセンブラのメーカーごとにいろいろ違うことがあったりするので「アセンブリ言語を学びたい」という言い方自体相当あやふやです。アセンブラならなんでもいいってことは無いでしょ?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

prwssさん

2017/3/2119:59:53

>Z80などが有名らしい

Z80は小規模なので、アセンブリの初歩とちょっとしたコツを掴むだけなら、10週間ほどで済みます

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

iki_tanpopoさん

2017/3/2119:52:53

自分が使うだろうCPUのアセンブリ言語を学んだらどうですか。

Z80は有名ですが、貧弱なのでいろいろ大変です。
情報処理技術者試験のCASL IIとかも、あるにはあります。

普通にx86のクライアントアプリのアセンブラでもいいです。
特権モードとアプリのモードでだいぶ違います。

入門だけならC++コンパイラの付属のインラインアセンブラから始めてもいいかもしれません。

C言語のループ処理・判定処理・関数呼び出し・ローカル変数などを理解していると、それの応用で理解しやすいです。
だから、アセンブラよりはC(別にCでなくても他の言語でも)の基礎を知っているうえでやるといいです。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる