1 :
デフォルトの名無しさん :
02/03/12 10:03 Unix-Cを極めるには避けて通れないgasについて語るスレッド
2 :
デフォルトの名無しさん :02/03/12 10:05
gcc -Sで吐かれたソースを見ても さっぱり解かりません。教えてください。
急用が出来たのでアフガンまで行ってきます。お世話になりました。
4 :
デフォルトの名無しさん :02/03/12 10:22
んじゃ!
5 :
デフォルトの名無しさん :02/03/12 10:26
>>3 試しにgasで
Hello,world
のサンプルソース書いてからアフガンに逝け
typoの予感
一つの道具で壁を感じたら 他の道具で挑戦してみたら? Delphi/Kylix 使えば手軽にインラインアセンブラ使えるし コードがあちこち落ちてるから、そっちから経験値貯めるのはどう?
アルカイダの皆さんに宜しく言っといてくれ
9 :
デフォルトの名無しさん :02/03/12 10:41
あぁ・・・
3は1じゃないです。
>>7 レスありがとうございます。
やっぱり回り道でもそちらの方が近道だったりするんですかね。。。。
>>9 うん。
Delphi/Kylix のインラインアセンブラは使っても外のアセンブラが呼ばれない
だから一瞬でコンパイルが終るし、
それにIDEでデバック出来るから快適。
最初はDelphiで動的にビットマップでも作ってみればいいんじゃない?
>>2 >さっぱり解かりません。
というのはどう解らないんだ?
ニーモニックが解らない?
マシンのアーキテクチャが解らない?
ロジックが理解出来ない?
>>11 それが解ってるようなら「さっぱり解りません」とは言わない。
> また、「もう何が悪いのかサッパリ分かりません。」と言って
> ふてくされるのも有効である。「サッパリ」という単語が
> 「やる気の無さ」を効果的に表現している。
まずは$info asすれ、おれも勉強中だ。
14 :
デフォルトの名無しさん :02/03/12 11:37
1です。 マシンのアーキテクチャ:はじめて読む486を通読しました。 ロジック:解かってないのかもしれません。 ニーモニック:今一番知りたいのはこれです。 nasm等のアセンブラはまだ参考書やWebに資料がありますが gasとなるとinfo asしか資料が見当たりません。 それならnasmでいいじゃないかとお思いになるかもしれませんが gccの吐くコードがgasなのでgasを極めたいのです。 あの膨大なinfo asを理解できるほどの英語力もgasの基礎知識もないので困ってます。
gasで始めるアセンブラ入門という本が図書館にあった。
16 :
デフォルトの名無しさん :02/03/12 11:49
ふ〜ん、「はじめて読む486」とやらと gasのニーモニックってかなり違うんだ?
ただ単に1はAT&Tシンタックスに慣れていないだけ。 Intelの奴で勉強しても基本だけは同じだよ。
18 :
デフォルトの名無しさん :02/03/12 11:54
>>14 マジレスするとソース読めtc-i386.cとか
19 :
デフォルトの名無しさん :02/03/12 11:56
GUN?
ねたスレかよ!
改めて見ると、確かに。
間違ってもネタじゃないです。
あぁ、GNUでしたね・・・ よく間違えます。
機動戦士GNUDAM
28 :
GNUマンセー :02/03/12 15:22
マンセー
29 :
デフォルトの名無しさん :02/03/12 15:33
Interfaceで連載やってるので,まとめて読むつもりで積ん読
32 :
デフォルトの名無しさん :02/03/12 21:50
下がりすぎ!
33 :
デフォルトの名無しさん :02/03/12 22:20
gasは機能が足りなすぎてやってられん。だからgasなんぞを覚える前に m4とかのマクロプロセッサの使い方を覚えろ。組み合わせて使わないと やってられんぞ。 結局gasはコンパイラのバックエンドに過ぎないってこった。
34 :
デフォルトの名無しさん :02/03/13 16:20
linuxのソースを読んでいたら jmp *%1 なんていうことろを見つけたのですが、 これってどういう意味なんでしょうか?
即値アドレスでしめされる値のアドレスへ飛べラムー
thanx!
37 :
デフォルトの名無しさん :02/03/13 20:20
39 :
デフォルトの名無しさん :02/03/13 22:44
1です。 みなさんアドバイスありがとうございました。 勉強中ですが早速質問させていただきます。 1. .section .rodata のrodataとは何のことでしょうか? 2. 多分C言語のmain(int argc,char argv[])に当たるものだと思うのですが .global main .type main, @function とは具体的に何を意味しているのでしょうか? よろしくお願いします。
40 :
デフォルトの名無しさん :02/03/13 23:11
つーかGASなんか使ってられるか
>>1 ご苦労なこった
42 :
デフォルトの名無しさん :02/03/13 23:27
>>39 まんまセクションにつけられた名前ラムー
ELF Header Format辺りで検索すれ
44 :
デフォルトの名無しさん :02/03/14 00:23
正直、1=44の頑張りに負けた。 sage
わーいセグメントレジスタだー
masm系とオペランドの順番が逆なのがキモイ。
AT&T方式になれるとIntelの奴が気持ち悪くなってくるね
あと$付き即値もキモイ。
50 :
デフォルトの名無しさん :02/03/14 01:35
あとGNUというのが生理的にいや
ここはgasスレ。関係ない書き込みはご遠慮ねがいます。
53 :
デフォルトの名無しさん :02/03/14 01:45
>>52 なんで死なないといけないんですか?
なんであなたにそんなこといわれないといけないんですか?
っていうか、なんであなたみたいな屑が人間やってるんですか?
ここはgasスレ。関係ない書き込みはご遠慮ねがいます。
55 :
デフォルトの名無しさん :02/03/14 01:53
あけましておめでとうございます
1です。
2です
59 :
デフォルトの名無しさん :02/03/14 02:36
ここはGUN Assemblerを作成するスレデス
61です。
62 :
デフォルトの名無しさん :02/03/14 09:26
GNU+Cygnus+Windows=Cygwin (・∀・)イイ!
>>63 銃を組み立てる工場の作業員のことをGUN Assemblerって言うんじゃないか?
65 :
(ΦωΦ)イイ! :02/03/15 07:33
Cygwinイイ!! マジでイイ!! ていうかGNU最高!!!!
ほんと良過ぎて漏らすところだった。 50MBくらいあったけどコンパイラとか入ってたし もう神かと思ったよヘ(゜Д、゜)ノアハハマンセー
69 :
デフォルトの名無しさん :02/03/18 21:06
ところでリバースエンジニアリングソフトなに使ってる?
70 :
デフォルトの名無しさん :02/03/18 21:26
dispe&ANATOMIZER
71 :
デフォルトの名無しさん :02/03/18 22:14
dispeいいねぇ。俺も好き。 ところでLinux環境でいい逆アセンブラある? まぁLinuxはオープンソースが多いから 必死になって逆アセンブラする必要も無いんだけど。。
72 :
デフォルトの名無しさん :02/03/18 22:31
「ここは gas スレ」というのが「ここは sage スレ」に見えました。まじで。
mov アドレス,値のほうが絶対見やすいって 構造化言語でも変数=値ってするし。 nasmとINTEL2gasがあれば
わざわざgasの形式で覚えなくてもいいと思われ
76 :
デフォルトの名無しさん :02/03/18 23:49
gcc -Sで出力されたコードの命令の意味がさっぱりわからん。 まあどうでもいいことなんだけど。
77 :
デフォルトの名無しさん :02/03/19 00:05
>>74 ノンノン
英語の文法から考えれば
mov 値、アドレス
の方が普通。
あとぅにっくすCを極めるにはGASは避けれない
AT&Tマンセー
>>76 俺はどっちでもいいと思うな。別に英語の文法の順序にこだわる必要もないし、
エンディアンネスみたいに両方あってもいいんじゃない?
>>74 の
>ノンノン
これが異様にカワイイと思うのは俺だけか。
82 :
デフォルトの名無しさん :02/03/19 15:32
gasじゃなくて悪いんだけど質問 Pentium3で疲れるレジスタ一覧が載っているサイトってあります? 結構色々あるんですよね?
84 :
デフォルトの名無しさん :02/03/21 15:17
「プログラミングの力を生み出す本」・・・インテルCPUのGNUユーザへ これ最高。騙されたと思って買ってみな。 将にGASの教科書だから。
騙された!
86 :
デフォルトの名無しさん :02/03/21 16:55
>>82 Intel の開発者向け Web サイト
Intel Architecture Software Developer's Manual Vol I - III.
PDF 版が置いてあるから、それを持ってきて読め。
87 :
デフォルトの名無しさん :02/03/23 00:14
プログラミングの力を生み出す本を買って見た。 悪くはなかった。でも擬似命令の解説が一切ナッシング。
88 :
デフォルトの名無しさん :02/03/26 09:58
疲れるレジスタage
90 :
デフォルトの名無しさん :02/03/26 13:11
は〜〜〜〜あ びばのんのん
91 :
デフォルトの名無しさん :02/03/26 15:33
i386のAAA-Ascii Adjust for Addtionや m68kのABCD-Add Binary Coded Decimalは 絶対何かを狙っているに違いない。
93 :
デフォルトの名無しさん :02/03/27 12:04
rep の使い方を教えてください。 rep hoge でrepが実行されるたびにcxがマイナスされhogeが 実行される でいいのですか?
94 :
デフォルトの名無しさん :02/03/27 19:51
hoge: .byte 36, 18, 15, 9 って char a = 36; char a = 18; char a = 15; char a = 9; と同じですか?
char hoge[]={36,18,15,9}; じゃないの?
96 :
デフォルトの名無しさん :02/04/16 06:51
binutilsの話題もこのスレでいいのかな?
>>96 スレ建てれば、類似スレとしてここ紹介されるだろうし
ここに書けばスレ違いだと言われるだろうし
そういうのって、多いよね。
>>97 BFDについて勉強したいけどなかなかいいドキュメントって
ないんですよね。2chじゃちょっとマニアックすぎるかな?
99 :
デフォルトの名無しさん :02/04/17 00:43
>>97 すれ違いといわれてからスレを立てても遅くはないと思われ
101 :
デフォルトの名無しさん :02/04/17 01:45
変な記号があるけど(゚з゚)キニシナイ! 使えば都
BFDっていうのはオブジェクトファイルを操作するプログラムに それらのファイル形式に依存しない共通のインターフェイスを 提供するためのものという理解でいいんですよね?
あとオブジェクトファイル形式に依存した処理をBFDの バックエンドに閉じ込めるためっていうのもあるか、、 やっぱりあれですかね。UNIXのツールを理解するには ソースを見ることが必須ですかね。Windowsでずっと やってきたのでそういう習慣がなかったりして戸惑います。
105 :
デフォルトの名無しさん :02/04/18 00:58
保全age
106 :
デフォルトの名無しさん :02/04/29 10:29
lds勉強あげ
107 :
デフォルトの名無しさん :02/05/01 22:54
ひたたび保全あげっ。ちょびっ。
108 :
デフォルトの名無しさん :02/05/01 23:07
じゃ、GUNあげ
109 :
デフォルトの名無しさん :02/05/14 18:36
GAS形式がどうしても嫌いな人はgas2itelでnasm(INTEL形式)に変換できるよ。 別にそのままでもすぐになれるけど。。。アセンブラの文法なんて単純だし。
112 :
デフォルトの名無しさん :02/05/17 15:42
便乗上げ
113 :
デフォルトの名無しさん :02/05/17 15:47
>>42 いまさらだがLinuxのカーネルソースはGASじゃなくてas86かと思われ
a
115 :
デフォルトの名無しさん :02/05/17 16:04
>>113 それってさあ、リアルモードで動作してるときのコードだけじゃなくて?
ブートのところは知らないけど、それいがいのところは確か、
普通にasで書かれてたと思ったけど。
「思われ」じゃなくて、お前は間違ってる。
2.4系はbin86を一切つかってないんじゃなかったっけ?
117 :
デフォルトの名無しさん :02/07/02 15:28
保守挙げ
>>117 あんた神!
このスレを探したのよ俺は。
あげてくれてあんがと
119 :
デフォルトの名無しさん :02/08/09 18:20
保守挙げ
120 :
デフォルトの名無しさん :02/08/14 11:39
age
121 :
デフォルトの名無しさん :02/09/23 16:28
http://www.rkmath.rikkyo.ac.jp/~kida/casm.html ここを見ながらgasについて勉強しています。
ところで、
gcc -S hello.cなどとコンパイルすると
沢山の.XXXとXXX:とういのが含まれています。これらはなんのでしょうか?
Cなどと同じように:はラベル。.は.textや.dataなどのセクションと同じように
ユーザー定義のセクションを作る、ということなのでしょうか?
だとするとユーザー定義のセクションの意味がよく分かりません。
なんでそんなものが必要なんでしょうか?
>>121 > 沢山の.XXXとXXX:とういのが含まれています。これらはなんのでしょうか?
アセンブラに対する命令。いろいろあるけど
.ascii
C のソースコード中の文字列リテラルに対応。文字列として、これこれの
データを用意してどっかのメモリに置いとけ、という指示。
.global シンボル名
シンボル名を外部リンケージ (C なら extern やね) にしろ、という指示。
などなど。
The Special Dot Symbol ====================== The special symbol `.' refers to the current address that `as' is assembling into. Thus, the expression `melvin: .long .' defines `melvin' to contain its own address. Assigning a value to `.' is treated the same as a `.org' directive. Thus, the expression `.=.+4' is the same as saying `.space 4'.