No.2ベストアンサー
- 回答日時:
アセンブリ言語は、CPU(またはそれに類するハードウェア)に固有の文法を持っています。
また、ハードウェアに「非常に」密着したプログラムの書き方になります。
したがって、まず、ハードウェアを選びます。
パソコンでもいいのですが、今のパソコンのCPUは最低でも32ビットなので構造がとんでもなく複雑で、OSとの関係もあるので、手を出さないほうがいいでしょう。
私が、どんなハードウェアがいいかと尋ねられたら、間違いなくZ80を勧めます。
Z80用のアセンブラは、フリーでもありますし、自作してもいいと思います。自作できたら、プログラム自身の勉強になるでしょう。
Z80のハードウェアは、秋月電子通商のAKI-Z80がお勧めです。
このカードマイコンに自分で電源やスイッチやLEDをつなげてスイッチの入力、LEDへの出力をコントロールしていくといいと思います。
参考URL:http://akizukidenshi.com/
この回答への補足
詳しい説明ありがとうございます。
マイコンではz80のほかにpicやH8などが有名ですが、なぜz80なのでしょうか?
マイコンは全くわかりませんので教えていただけないでしょうか?
No.10
- 回答日時:
Z80を勉強するのであれば、
※ Z80のマイコンキット
お奨めは、やはり秋月電子通商のAKI-80のカード型マイコン。
タイプはどれでも良いけど、初めてだったらスーパーAKI-80かなぁ。
※ 電源
5Vのスイッチング電源(俗に言うACアダプタ)で良い。
1A以上のもの。
※ ユニバーサル基板
少々高目だけど、ガラスエポキシ基板が丈夫で良い。
この上に、当面の回路を作成する。
※ デバイス
LEDとかスイッチとか。
※ 部品類
抵抗、キャパシタ、電線、はんだ、他。
※ ROM
単価は高いがEEP-ROMにすれば、ROMイレイサが不要になる。
※ ROMライタ(writer)
P-ROMにデータを書き込む。
EP-ROM(UV EP-ROM, EEP-ROM)や1回限り(One time)のROMがある。
※ ROMイレイサ(eraser)
UV EP-ROMを書き込み可能な状態にする。
EEP-ROMであれば不要。
※ アセンブラ
Z80なら、C言語に手を出さない方が良い。
C言語をするなら、16ビット以上のCPUが良い。
※ 追加事項
Z80の置かれている状況は厳しいようですね。CPUも確実に世代交替が行なわれているようです。
各商品の値段は、参考URL等で調べて下さい。
参考URL:http://akizukidenshi.com/
No.9
- 回答日時:
から一番したのwin32 binaries のwindows 32bit版をダウンロードして、
http://alink.sourceforge.net/download.html
windowsでexe形式のプログラムを作るには、alinkが必要です。com形式ならなくても可
http://www3.ezbbs.net/cgi/bbs?id=anesan&dd=40&p=1
マシン語の掲示板です。
本屋さんでアッセンブラプログラミングの本がおいてあるところがあるはずです。探してみてください。
以下はnasmでコンパイルするとタイトルバーに『タイトル 初めての win program』と表示されるHelloworld見たいなものです。メモ帳にコピーして、asmで保存するといいとおもいます。
[bits 32]
[extern MessageBoxA]
[section .text]
[global start]
start:
push dword 0
push dword title
push dword message
push dword 0
call MessageBoxA
ret
[section .data]
title:db 'タイトル 初めての win program',0
message:db 'ようこそ アセンブラ による',13,10,'ウィンドウズプログラミングへ',13,10,0
;---------------------------
これが、アセンブラのHello,Worldなんですね。
やっぱり、C言語と違って長いですね。
覚えるにはかなり時間がかかりそうですががんばります。ありがとうございます。
No.8
- 回答日時:
naru_fumi2005さんに反論するわけではないのですが...
秋月のH8ボードを使うのであれば、H8/3048FよりH8/3069Fの方が扱いやすいかと思います。
LANまでついていてオーバースペックかもしれませんが、ボードの扱いは一番簡単です。
H8/3048Fは、別途マザーボードを購入するか、ライター基板を自作しないといけないので、案外高くつくということもあります。
参考URL:http://akizukidenshi.com/catalog/items2.php?p=1& …
この回答への補足
マイコンってLANまでついてるんですね。
面白うそうです。H8を使うときは是非これを使って見たいと思います。
やはり何かを始めるとお金がかかりますね。
No.7
- 回答日時:
最後に、1つ訂正を。
私は、Z80を勧めると言いましたが、今までデジタル回路や電子回路に触れて来たことがない、ICとして単独のROMにデータを書き込んだことがない、と言うのであれば、H8をお勧めします。
ROMライタやイレーサ等の初期投資が必要になりますので。
私の環境ではそれらが揃っているので、そのつもりで言ってしまいました。
H8の本では、私の見てきた限りでは、あまりいいものはありませんでした。
でも、最初は、アセンブリ言語ですることを強くお勧めします。
H8の参考書だと「C言語で開発!!」と声高々に言っていますが、マイコンはアセンブラありきです(パソコンは違います。)。C言語はその後でいいです。
CPUは、秋月のH8/3048Fで言いと思います。
マザーボード(?)付きもあるので、初めはそれで好いのではないでしょうか。
それに付属する取り説(結構簡単で雑ですが)で何とかなりますよ。
この回答への補足
薦めて頂いた本を見つけました!
いやぁ、足を棒にした甲斐がありました。
お金をかけずに手をつけるならH8ですか。
もし、z80に必要な物を揃えるにはいくらぐらいかかるのでしょうか?また、お勧めの物はありませんか?
No.5
- 回答日時:
※アセンブラ
アセンブリ言語で書かれたプログラムを機械語、またはオブジェクトコードに変換する。
※コンパイラ
(アセンブリ言語を除く)高級言語で書かれたプログラムを機械語、またはオブジェクトコードに変換する。
※リンカ
オブジェクトコード、ライブラリを結合して、1つの実行形式にまとめる。
Windows上でZ80のプログラムを書いて、マシン語に変換する作業をクロス開発と言い、ターゲットと作業マシンの異なるアセンブラ(コンパイラ)をクロスアセンブラ(クロスコンパイラ)と言います。
ですから、ターゲットと開発環境を切り離して考えてください。
まずは、ターゲットを決めることです。
この回答への補足
なるほど、やっと違いがわかりました。
ターゲットと言うのは、H8、Z80、PIC、x86などの事ですよね?
H8かZ80かで悩んでいます。まぁ、複数のアーキテクチャを勉強したほうがいいとの事ですからどちらか先に勉強していずれもう片方もやってみたいと思っています。
No.4
- 回答日時:
それでは、簡単に、PIC、H8、Z80の特徴を。
*PIC
1. RISC系CPUで、命令数が少なく、構造が単純で安価。
2. アドレッシングモードが貧弱。
3. 電子工作ではもちろん、個々の製品にも使われているらしい。
4. そのアーキテクチャ上、一般のマイコンとして必要な知識を得にくい。
5. フラッシュROM内臓で、プログラムがしやすい。
*H8
1. 比較的綺麗なアーキテクチャを持っている。
(演算はレジスタ・レジスタ間、即値・レジスタ間のみで、転送命令に様々なアドレッシングモードを持つ。)
2. 16ビットCPUでペリフェラルがほとんど内蔵されている。
3. フラッシュROM内臓で、プログラムがしやすい。
*Z80
1. IOの接続に(今では珍しい)IOマップトIOを持っている。
2. 専用レジスタ形式なのでレジスタの使い方を勉強できる。
3. この頃少なくはなってきているが、資料が多い。
私がZ80を勧める理由は、CPUとして必要な知識を80%くらいは学べるということです。
残りの20%は、MMUとかプロテクトモードとか、高度なマルチタスクに関する部分です。
PICではサブルーチンでローカル変数を設けることが難しいし、サブルーチンのレベルが4(PIC16F84)までしか置けません。
H8は、16ビットCPUで初めて使うにはその能力を持て余してしまうことは明白です。
この回答への補足
一口にマイコンと言ってもこんなに違いがあるんですね。といっても、チンプンカンプンですが…。
勉強のしがいがありますね。
z80は資料が多いとの事ですが、お勧めの本を紹介していただけないでしょうか?
No.3
- 回答日時:
> できれば便利なコンパイラを使用したいと考えています。
ですから、コンパイラを使いたいのであれば、C言語などを選ぶべきです。
> インテルx86系のCPU上で使用できるアセンブラを探しています。
8086であれば、現在入手しやすい入門書は『8086 マクロアセンブラ入門』ぐらいかと思います。アセンブラはnasmで十分でしょう。
純粋にアセンブラを習得したいのであれば、x86にこだわらずに別のプロセッサを使っても良いと思います。
x86との類似性を考えればZ80もよいのですが、入手しやすさやCPUボードの選択肢、開発環境の扱いやすさを考えると、H8の方が楽かもしれません。それに、アーキテクチャが異なるものをいくつか学習しておいた方が応用がきくということもあります。
この回答への補足
間違いを正していただきありがとうございます。
どちらも実行すると実行ファイルが得られると思いますがコンパイラとアセンブラの違いはなんなのでしょうか?
薦めて頂いた本を早速購入したいと思います。
No.1
- 回答日時:
> アセンブラを勉強するには、どのコンパイラを使い何を参考にして覚えていけばよいのでしょうか?
アセンブラを作りたいということでしょうか?
そうでなければ、どんなコンパイラを使うかということに意味はありません。
アセンブリ言語で記述されたプログラムを機械語に翻訳するのは、コンパイラではなくアセンブラだからです。
それともうひとつ。
対象とするプロセッサは何でしょうか?
この回答への補足
返事ありがとうございます。
アセンブラを作りたいわけではなく、使えるようになりたいです。
できれば便利なコンパイラを使用したいと考えています。
インテルx86系のCPU上で使用できるアセンブラを探しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アセンブラ言語で質問です。
-
PICのアセンブラからC言語へ変...
-
PC-9801でマシン語を学習するに...
-
アセンブラの学習法
-
教えてください
-
アセンブラの勉強の不安について
-
アセンブラの擬似命令について
-
アセンブラからC言語に変換する...
-
[C言語→アセンブリ言語]はどう...
-
0xffffとは?
-
エクセルVBAのIf,Then 構...
-
文字参照は10進数と16進数では...
-
ものづくりに向いているプログ...
-
Delphiで232Cを使ってデータの...
-
オープン系 Web系 ファー...
-
8ビットのデータの、先頭ビット...
-
2の補数
-
成人してから
-
CommXのサイトを教えてください。
-
情報源符号化について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アセンブラからC言語に変換する...
-
ライン数とステップ数の違いは?
-
実行ファイルからソースはみれる?
-
PC-9801でマシン語を学習するに...
-
[C言語→アセンブリ言語]はどう...
-
void __cdeclなど_
-
アセンブラwordという単位
-
アセンブラ言語がわかりません。
-
バイナリの実行ファイルをgccを...
-
SHの命令の意味について
-
PC-9801 MS-DOSでの実行ファイ...
-
アセンブラエディタ
-
PICに書き込むプログラムや変数...
-
PICのアセンブラからC言語へ変...
-
アセンブラのLA
-
【H8マイコン】HEWで埋め込みア...
-
ニーモニックコードを使って割...
-
7セグメントLEDの点灯について
-
アセンブラのコマンドについて
-
MASMの機種依存についてお尋ね...
おすすめ情報