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

アセンブリ言語

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさんNGNG
アセンブリ言語を学びたいのですが、効率良く学ぶ方法は、
ないでしょうか?
お勧めの書籍等があったら教えてください。
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
僕のさくらちゃん!ヽ(´ー`)ノ
0202デフォルトの名無しさんNGNG
Z80のならちょっとだけ覚えてるかも。
C9がRETでCDがCALLでC3がJPだっけ?
0203デフォルトの名無しさんNGNG
昔は人間アセンブラ・ディスアセンブラなんてひともいたんだけどね。
0204デフォルトの名無しさんNGNG
そうそう。紙テープ読んで、東京湾に怪獣出現とかわかるひとも(略
0205デフォルトの名無しさんNGNG
そうそう。カセットテープに録音されたBASICのプログラムを”聞いて”、
何のプログラムか当てたり、あまつさえそれを紙に書き下せたりするひとも(略
0206デフォルトの名無しさんNGNG
あぐぇ
もっと、お話聞かせてよ。あと、MBRに置くローダーとかはアセンブラで
なくても良いの?

0207デフォルトの名無しさんNGNG
2ちゃんねるはメガネオタクの集まり!!
どうしょうも出来へんな!!
スキルも無いくせに能書きだけは一人前の奴ばっか!!
ほんまにスキルある奴は軽く遊んだるから、かかってこいや!!
アホが!!2ちゃんねるはメガネオタクの集まり!!
メガネ割りたい!!
文句あるなら、かかってこいや!!
アホが!!
http://www.rju666.com/


0208.NGNG
コンパイラの作り方を教えて
0209デフォルトの名無しさんNGNG
>>208
ポーランドでもトルコでも行って勉強して来い
0210208NGNG
>209
ボーランドってあの有名なIDEメーカーですよね?
トルコって?
0211デフォルトの名無しさんNGNG
>208
真下にあるぞ、コンパイラスクリプトエンジンとかのスレ
0212デフォルトの名無しさんNGNG
CとC++にさわり初めてはや5年。どうも大事な所が抜けている気がして
「初めて読む8086」とかでアセンブラの勉強を初めてみました。

おかげでコンピュータに対する理解は深まったのですが、いざVC++のはく
アセンブラコードなんか読んでみようとすると、途端につまずいてしまいます。

果たして>>192辺りのレベルに至るには、具体的に何が必要なのでしょうか?
やっぱり自分でアセンブラを使い、なんか書いて見るしかないのですかね・・・
0213いつでもどこでも名無しさんNGNG
    mov $100, %ecx
1:
    call write_code
    call has_understand
    test %eax, %eax
    beq 2f
    loop 1b  
    halt
2:
    ret
   
0214212NGNG
>>213
うーんと100回なんかやってるんですよねぇ。でeax同士を
test・・・どういうことなんだろう?んでbeq・・・なんだろうこれは。
もしかして・・・、うーんそもそもネタかなぁ、どうかなぁ。

てなレベルなんです
0215beq 2fNGNG
'branch equal forward label 2'ってことか?
x86は知らん。
0216beq 2f NGNG
先頭が英文字でなくてもラベルはれるの?
x86は知らん。
0217デフォルトの名無しさんNGNG
ネイティブにはbeqなんて命令はないよ。マクロ?
branch 〜っていうのはモトローラ系のにおいがするね(^^;
x86なら jz @f(←MASM互換ならね)でしょ。
0218213NGNG
ああ、そこだけ MIPSが混じってしまった >>217
x86しばらくいじってないんで。鬱堕死膿
ちなみに intel標準じゃなくて gasですが >>216

0219ここにもあるぞよNGNG
http://hp.vector.co.jp/authors/VA000124/index.htm
0220デフォルトの名無しさんNGNG
どなたか、Windows上で動く68000用逆アセンブラのいいやつを教えていただけないでしょうか。
フリーソフトの奴で。
僕が探してみた奴はいまいち使い勝手が悪い(4Kbyteぶんしか逆アセンブルしない)とか、
シェアウェアだったりしたので。
0221デフォルトの名無しさんNGNG
HAS.X>220
0222バカなりに答えてみます。NGNG
>>212
藤原博文「Cプログラミング専門課程」(技術評論社)によると…
メモリマップを書くのが大事だそうです。
静的変数、関数、動的変数、一時変数、
のメモリ配置は、おおよそ決まったパターンがあります。
OSのしくみを解説した本にもありますが、
データ領域、テキスト領域、ヒープ領域、スタック領域、など
メモリ配置の仕方が分かると、より理解が深まるのではないでしょうか。
0223デフォルトの名無しさんNGNG
>>220
EX68 上で dis だ.

0224デフォルトの名無しさんNGNG
>>1
無い
0225212NGNG
ここ数日switchとif〜elseのはくコードの違いは?みたいなことやってました
>>222
遅レスですいません。で・・・うーん、DSとかSSとかの話ですよね。
正直今まで、これはDOS時代の話だと思ってました(^ ^;
確かに私、こういうのさっぱりで・・・高低の具合ですらあやふやなぐらいでして。
「メモリマップを書く」難しそうですが勉強してみます。キーワードサンクスです
0226デフォルトの名無しさんNGNG
test
■ このスレッドは過去ログ倉庫に格納されています