トップページ⇒tech
226コメント63KB

アセンブリ言語

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさんNGNG
アセンブリ言語を学びたいのですが、効率良く学ぶ方法は、
ないでしょうか?
お勧めの書籍等があったら教えてください。
0101究極の8BITNGNG
6809なんか、結構楽しいけど、エミュレータあるかな?
実用的にはZ80なんだろうけどね。
0102名無しさん@お腹いっぱい。NGNG
>>101
そうだね。6809ってとっくに廃品だもんね。
0103名無しさん@お腹いっぱい。NGNG
6809ってもう作ってないの?
0104名無しさん@お腹いっぱい。NGNG
TK-80 エミュレータ入れて 8080 を勉強するというのはどうか?
あのCPUはちょっと辛いか?
0105名無しさん@お腹いっぱい。NGNG
>>103
もうカタログから名前が消えて随分経つとおもう。
6809って知名度の割に採用例が少なかったから値段も下がんなかったし
商売的には失敗かな。8bitマイコンの時代に高級言語でのソフトウェア
開発がもうちょっとポピュラーだったらアーキテクチャのメリットも結
構生かせたかとおもうんだけど、なんだか惜しいね。
0106名無しさん@お腹いっぱい。NGNG
>>104
8080はアーキテクチャもスッキリしてるし、いいんでない?
ただあのムックだけじゃ勉強にならんよなぁ…
0107名無しさん@お腹いっぱい。NGNG
>>105
6809といえばOS-9とかもね、実用性は兎も角として理想は高かったよね。
惜しいね。
0108名無しさん@お腹いっぱい。NGNG
8080はニーモニックが厭、8080命令しか使えないとしてもZ80の
アセンブラで書きたいな。
0109名無しさん@お腹いっぱい。NGNG
cs=ds=es(=ss)として、8086アセンブラから始めるってのはダメですかね?
0110名無しさん@お腹いっぱい。NGNG
別にセグメントあったっていいじゃん。
0111名無しさん@お腹いっぱい。NGNG
セグメントですかぁ

「データとコードは混在しない!」つう、Intelさんの思想ですね。
ま、でも実際に動かせるって意味なら、8086は有効ですか・・・。

いっそのこと、80386プロテクトモードで覚えるってーのも手ですよ。
32bitで、レジスタの役割分担厳しくないし・・・。
0112名無しさん@お腹いっぱい。NGNG
Z80から始めるのがお勧め。一世を風靡したチップだけあって、
まだまだ解説書も出回ってるので。

いきなり86系から始めると、2や4のかけ算・わり算でも
ビットシフト使わない人になってしまうのでやめた方がいいす。
0113109NGNG
いやー、セグメント意識せずに、8ビットもどきとして扱わせれば
初心者でもわかりやすいかな、と思ったんですが。

8ビット機やPC-9801全盛期だった頃は、VRAMアクセスするプログラムとか
作らせれば、初心者でもメモリのイメージとか掴みやすかったように思います。
0114名無しさん@お腹いっぱい。NGNG
今更セグメントを覚えても使い道がないし・・・
0115名無しさん@お腹いっぱい。NGNG
組込みとかでDOS使ってたら意味があるかも。
0116名無しさん@お腹いっぱい。NGNG
88えみゅで動くアセンブラあったらなぁ
ぁぁ、べつに98えみゅでもいいけど
0117名無しさん@お腹いっぱい。NGNG
開発環境を考えると、秋月にあるキットのものを使った方が
入手の面でもいいよね。いまだと、PICかAVR、ちょっと上でH8かな。
Z80の方はROMライタがネックだからねぇ。他はISPができたり、書き
込み環境付属だったりするんで楽。
まぁ、PICはちょっと癖があるから初心者にはAVRの方がいいだろうけ
ど、PICの方が有名かつ旬で解説書も多いから迷うところだね。
0118名無しさん@お腹いっぱい。NGNG
88はSuperMonitorとか超便利なモニタがあったけど、あれはもう
入手不可なんだろうな。ROM内蔵モニタは8080用なのでちょっとね。

他にCDOS系でいろいろあったと思ったけど、もう忘れちゃったよ・・
0119名無しさん@お腹いっぱい。NGNG
Z80風というところでGameBoyエミュレータ用のプログラムを組む
なんてのも楽しいかもね。
0120>104NGNG
TK-80のエミュレータ−って、
本屋で売ってる奴?
あれは使いにくそう。
せめて今のもののようなキーボートとディスプレイが欲しい。
やはりMSXの実機を買うか貰うかするのが
一番分かりやすいのではないかと思う。
ゲーム作るのにもちょうどいいし。
マシン語はゲームを作るととてもよく分かるようになると思うんだが。
経験上。
0121ししゃも@KNGNG
Z-80シミュ
http://www.vector.co.jp/soft/win95/util/se091567.html
試してないので、使い勝手はわからんが、どう?
0122名無しさん@お腹いっぱい。NGNG
やはりAKI-80だな
0123あぼーんNGNG
あぼーん
0124>123NGNG
どのような文脈で何を言っているのか分からない。
0125名無しさん@お腹いっぱい。NGNG
>124
多分突っ込むスレを間違えたんずら。
「あん、そこじゃないっ、そこじゃないって…
言ってるのにもう出してしまったのね。」
0126名無しさんi486NGNG
>>124
コピペ。無視すれ。
0127名無しさん@お腹いっぱい。NGNG
Oh!X復活版に載っていたMipsのアセンブリ言語ではだめですか?

それはともかく。
コンピュータ言語では,CとかJavaとかより
なぜかアセンブラがお気に入り。
そう言う人いませんか?
0128名無しさん@お腹いっぱい。NGNG
>>127
なにそれ?
しかし、化石スレをあげたなあ。
0129>127NGNG
てめえ本当にアセンブラだけでプログラムしたことねえだろ。
あんなめんどくせーもんできれば二度と触れたくないぜ
高級言語万歳
0130名無しさん@お腹いっぱい。NGNG
>>129
まったくだね・・・・・・

ただ127も、自身がアセンブラ好きとは言ってないような
0131名無しさん@お腹いっぱい。NGNG
そういえば、アセンブラ「だけ」って開発は無いなあ。
0132名無しさん@お腹いっぱい。NGNG
あることはある、でも新規では・・・無いだろうな〜
0133名無しさん@お腹いっぱい。NGNG
ファミコンのソフト作ったことある。
アセンブラで組んだよ。
A・X・Yレジスタがあるんだよ。
足算しかないと思った引き算は補数でやる。
掛け算・割り算や浮動小数点なんて無い。
全部8ビットで計算。
おまけに計算はAレジでしかできん。
X・Yはアドレスに対するインデックス指定のみに使用。
もちろん8ビットなので255以上は指定できない。
ジャンプ命令もアドレス番地256以内と256以上離れた場合では別の命令を使う。
その他不満がいっぱい。
もう2度とファミコンのソフトは作りたくない。
0134名無しさんi486NGNG
アキュムレータあげ。
0135名無しさん@お腹いっぱい。NGNG
ファミコンのCPUコアは6502コンパチだからねえ、
70年代の8ビットCPUはそれぐらい不自由で当たり前だった。
最近のCPUに慣れるとあれはキツイかもな。
0136名無しさん@お腹いっぱい。NGNG
いやでも 6502は今でも使い易いCPUのひとつだよ
PICや4ビットに比べりゃ・・・
0137名無しさん@お腹いっぱい。NGNG
ゼロページさげ
0138名無しさん@お腹いっぱい。NGNG
>>1
マジレス。特に1番上のはおすすめ。

http://webster.cs.ucr.edu/index.html
http://linuxassembly.org/
http://asmjournal.freeservers.com/
http://www.e-net.or.jp/user/missing-link/assembler/
0139名無しさんi486NGNG
linuxassembly.orgはイイよ。あんがと
0140名無しさん@お腹いっぱい。NGNG
4ビットと電卓系の石だけはね・・
特に後者は・・・
0141139NGNG
クリスマスだってのにアセンブラ萌え〜
gasいじりまくりです(w
0142名無しさん@お腹いっぱい。NGNG
ザイログなんかケッ!
やっぱり正統派インテルだね
4004マンセー!
0143名無しさん@お腹いっぱい。NGNG
>>142
でもZ80を作った人達は、8080を作った人達だよ。その8080やZ80の
開発メンバの一人は日本人の嶋正利という人で、この人は4004も作って
たりして。
0144デフォルトの名無しさんNGNG
SH-3のアセンブラってやっぱり日立のマニュアルを読むのが一番ですか?
エミュレータってどっかにないですかねえ?
0145143NGNG
石を作った人はエライ!けどオレはその人をしらんのだスマン。
おれは4004の次に8080に行き68000へ飛び、高級言語へ飛びCOBOL・PL/Iを5年さらって、低級言語へ戻ってきたのだ
今はメインフレームでアッセンブラーだ。
俺の原点は4004なんだぁモンクアルカァ!!!

1へ告ぐ
アッセンブラー仕事のある会社へ入れば近道だ!
メーカー系や周辺機器系の会社やその下請けにコンタクトし、開口一番アッセンブラーをヤラセロと言うのだぁ!
0146マジレスNGNG
>>145 なかなか威勢がいいな。
ところでその勢いで少し意見を聞かせてほしいのだが、
68000 のリトルエンディアンって、なんかメリットある?
すくなくともオレはあんましイイと思ったことがない。
経験が少ないせいかもしれん。ちなみに使ったことがあるのは
Z80,8086,68000 の3種類。
0147デフォルトの名無しさんNGNG
逆。68000はビッグエンディアンでZ80,8086がリトルエンディアン。
語源から分かるように下らん争いになるから突っ込まないほうが良いよ。
0148146NGNG
すまん、逆だったか。指摘ありがとう。
煽りじゃなくてマジなつもりだったが宗教戦争になりそうだったら
この件はもういいっス。
0149デフォルトの名無しさんNGNG
通信の世界は、ビッグエンデアンだよん。
通信機器のモートローラが作ったのが68000シリーズだったね。

あ、ageちゃった。
0150あさはかマンNGNG
アセンブラは
アセンブラを組める人とコンタクトが有るか無いかで
覚えるまでの時間が10倍は違う気がします。

まずはアークテキチャは問わずアセンブラ組める人を
知り合いにするのが早道。

ホビーユースならマイコンを買ってきてロボット作ってみるのはいかが?

最近はCPUが格段に速くなってメモリも激安化して
重たくて敬遠されていたOSがずいぶん楽になった上に
割りこみベクタを細分化する流行のおかげで
組み込みCPUはアセンブラ覚えなくても組めたりして
アセンブラを覚える必要もあんましなくなってきて
馴染みのローカル線が無くなるよーな気分ですな。

>>149
TIがDSPやってるのはやっぱり山師だから?
0151S/370NGNG
学生時代に TI の DSP を一瞬使ったが、アセンブラを買ってもらえず
ハンドアセンブルしたことが……
会社に入ったら IBM の 308x, 309x があっていきなり 370 の
アセンブラやらされた。今でも蛇腹が机の引き出しに眠ってるナー。

今は Perl, SQL, sh スクリプトでことが足りる。次は Java かな
0152天照NGNG
>>1
TASM32,MASM32などをLDしてください。
書籍はもうあまりでていないようですので
サンプルを元にどうぞです。とりあえず基礎的なものばかりですが。
ttp://www.pbq.com.au/home/hutch/
ttp://visualasm.cjb.net/
ttp://www.thefreecountry.com/developercity/index.html
ttp://www.programmersheaven.com/
ttp://www.piic.net/~win32asm/
0153デフォルトの名無しさんNGNG
ここはキシュツですか?
ttp://www.nk.rim.or.jp/~jun/lxasm/asm00.html
0154デフォルトの名無しさんNGNG
キシュツってなあに?
0155デフォルトの名無しさんNGNG
>>154
きしゅつ 【既出】
以前にすでに提示されていること。「―の単語」
じゃないか。
0156デフォルトの名無しさんNGNG
がいしゅつじゃないのか?
0157デフォルトの名無しさんNGNG
>>156
そんなに2ちゃんに染まらんでもいいじゃない…
0158not 156NGNG
うぞ! 既出ってがいしゅつじゃないのか〜。fj で
 A「それは的を得てますね?」
 B「は? 的は射るものですが」
的な発言をよく見るのと同じで、2ch でも
 A「きしゅつです」
 B「はぁ? きしゅつってなにさ(藁」
とかいうのが流行った結果、2ちゃんねらーは
がいしゅつがいしゅつ言ってるのかと思ってたよ…。
# じゃあ何でみんながいしゅつって言うの?
0159デフォルトの名無しさんNGNG
どっかのスレッドの1番の発言で、「既出」の意味で「がいしゅつ」とか
言った人がいて、それがむちゃくちゃに煽られて、2chでは「がいしゅつ」が
流行った。
0160デフォルトの名無しさんNGNG
今では「きしゅつ」の方が不自然に感じる。
0161名無しさん@お腹いっぱい。NGNG
つーか漢字で書こうぜ、既出
0162デフォルトの名無しさんNGNG
>>152 LDって? ロード?
0163デフォルトの名無しさんNGNG
LD:レーザーディスク
0164デフォルトの名無しさんNGNG
普段なにげなくポロッと言ってしまわないか心配だ>がいしゅつ
0165デフォルトの名無しさんNGNG
「ガイシュツ」の真相情報どうもです。
変換できないからおかしいとは思ってたのだ。
0166デフォルトの名無しさんNGNG
2chに染まりすぎると言語障害に陥ります。
0167デフォルトの名無しさんNGNG
>>165
ははは。
「的を射る」と書いて「まとをえる」と読みます。
0168デフォルトの名無しさんNGNG
2chだと、巣窟が「すくつ」、既出が「がいしゅつ」になる。
馬鹿だと思われるぞ。
0169デフォルトの名無しさんNGNG
アセンブリ言語じゃなくて日本語を学ぶスレと化したな。
0170not 156NGNG
>>164
> 普段なにげなくポロッと言ってしまわないか心配だ>がいしゅつ
そだそだ。昔はきしゅつとさらっと読めたが、今だと
がいしゅつの方がまず頭に浮かぶもの。ひどいや 2ちゃんねらー。
0171デフォルトの名無しさんNGNG
普通のBBSで「行く」を間違えて「逝く」と誤変換してるのを見ると
ほほえましいです。
0172たNGNG
2ちゃんねらーであることをカミングアウトしているようなもんだな
0173名無しさん@お腹いっぱい。NGNG
きしゅつは話し言葉じゃないと思うんだが
0174デフォルトの名無しさんNGNG
話し言葉ではまず使わないだろうけど、
読むときが問題なんじゃない?たとえば報告書を読み上げたりする時とか。
0175デフォルトの名無しさんNGNG
いく
行く
行く
うむ。OK。
0176名無しさんi586NGNG
逝く(ゆく)です。
0177デフォルトの名無しさんNGNG
>>175-176
ワラタ
01781NGNG
うむ。OK。


176 名前:名無しさんi586投稿日:2001/01/12(金) 14:16
逝く(ゆく)です。


177 名前:デフォルトの名無しさん投稿日:2001/01/12(
0179名無しでGO!NGNG
「池脇」が「逝け脇」に変換された時はマジ氏のうかと思った。
0180デフォルトの名無しさんNGNG
消えてくれ>〜179
0181デフォの名無しNGNG
さっき仕事場の人が、
「現行と同じようにコンテンツ毎であるが」
の文章を、
「げんこうとおなじようにコンテンツいちごであるが」
と読んでた。笑ったよ。
「ネタか?」とか言いそうになった。あほじゃん。
0182デフォルトの名無しさんNGNG
>>181
疲れてるんだよ。
ノイローゼ間近っぽいな。
0183デフォルトの名無しさんNGNG
あげ
0184デフォルトの名無しさんNGNG
どうでもいいが、なんのスレだよここ(笑)
0185デフォルトの名無しさんNGNG
アセンブラ出来るとなにか良いことありますか?
0186デフォルトの名無しさんNGNG
>185
一般的に小さくて速いプログラムが作れる。
解析やデバッグが容易にできる。
0187デフォルトの名無しさんNGNG
>>185
いまは使う機会あまりないよ。よほどハードに密着したプログラムを
書くとか、ループ内部のようなどうしても最適化したい場面でも
なければ。っていうかキャッシュミスとかまで考えるとやってられない。
コンパイラに任せた方がマシ。
サイズも昔は重要だったけどね…。>>186

かくいう自分は厨房時代にMSXのマシン語してたくらいだけどね。
そのおかげでx86系も読むぐらいはできるかな。
あと、アセンブラできるとなぜかシェアウェアにお金を払わなくて
すむようになります(謎 が、ほどほどにね(笑
0188デフォルトの名無しさんNGNG
>>187
よく知らないんですが
パスワードを直接埋めこんでたりするんですかね?
0189186NGNG
>187
「いまは」・・?。
「いまだに」デバドラ組んだりするやつらの立場も考えろ。

まあ、そういったハードウェア寄りの開発にも効くってことで。>185
0190デフォルトの名無しさんNGNG
>>187
コウハン、ワラタ
0191デフォルトの名無しさんNGNG
>>189
ハードに密着したプログラムを書くとか…は除外してるでしょ。
昔は普通のプログラムでも必要だったからね。
>>188
それならバイナリエディタで充分じゃん(笑)
条件分岐とかをいじるの。
0192デフォルトの名無しさんNGNG
>>185
ターゲットCPUのアーキテクチャ、および、
コンパイラがどのようなコードを吐くかを知らなければ、
良いプログラムは書けません。

実際にアセンブラを使うことはなくても、
アセンブラの知識は必須なのです。

同じ高級言語であっても、
アセンブラを知らないプログラマと知っているプログラマの
書いたコードを比べた場合、
数倍以上速度差があるなんてことはザラです。
0193デフォルトの名無しさんNGNG
OSやCのライブラリを書く場合は、アセンブリ言語を使って最適化したほうがよい
場合が多いようです。

たとえば
http://cvsweb.netbsd.org/bsdweb.cgi/basesrc/lib/libc/arch/にはNetBSDの
libcの、各アーキテクチャ向けに最適化されたものがあります(ほとんど空の
ディレクトリもありますが)。

それと、多くのJavaの仮想マシンもアセンブリで最適化されているらしいです。
0194Polymorphia ★NGNG
>>187 名前: デフォルトの名無しさん
後半:確かにです。
end of line
0195Polymorphia ★NGNG
そういえばdosのころもAntiDebugRoutineってありましたよね。
例えば
.
.
.
stop_trace:
push bx
pop ax
dec sp
dec sp
pop ax
cmp ax,bx
je tsr_check
hlt
int 19h
.
.
こんなのとか。
end of line
0196デフォルトの名無しさんNGNG
「初めて読む8086」は確かに初心者向けだったが、
「初めて読む486」は未だ理解に至っていない。鬱。
0197七審じゃNGNG
消えて欲しくないので、あげさせていただきます。
0198あさはかマンNGNG
>>196
それは486が決して判りやすいものでは無いからでは・・?
0199デフォルトの名無しさんNGNG
>>198
心からx68系が羨ましくなったよ・・・・・
0200デフォルトの名無しさんNGNG
でも、OSくらいまで作ろうとしなければ面倒なのも減るっしょ?
GDTとかさ・・・
0201デフォルトの名無しさんNGNG
僕のさくらちゃん!ヽ(´ー`)ノ
■ このスレッドは過去ログ倉庫に格納されています