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

アセンブリ言語

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん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
■ このスレッドは過去ログ倉庫に格納されています