1 名前:デフォルトの名無しさん [2006/05/24(水) 01:43:34 ] アセンブラ全般に関するスレッドです。 【前スレ】 アセンブラ… ヽ(゚∀゚)ノフォーウ! pc8.2ch.net/test/read.cgi/tech/1132761638/ 過去ログは>>2 辺り
321 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 20:57:07 ] >>317 コンパイラがサポートしてるならintrinsics関数で書く。
322 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 21:21:13 ] C言語レベルで最適化する余地があると思うが ヒント for(int iy = 0; iy < ye; iy++){ sumA+=cx1*(cy1+sy1); sumB+=sx1*(cy1-sy1); } sum+=sumA+sumB;
323 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 22:12:57 ] >>322 まだ最適化できる。 ヒント for(int iy = 0; iy < ye; iy++){ sumA += cy1; sumB += sy1; } sum += cx1 * (sumA+sumB); sum += sx1 * (sumA-sumB);
324 名前:323 mailto:sage [2006/07/17(月) 22:19:41 ] >>323 あ、自分で書いといて今気づいた。 この書き方だとループも外に括りだせるからO(n)で計算できる。 もとのコードだとO(n^2)だから圧倒的に性能が向上する。 というかアセンブラに手を出す前に論理レベルで最適化しろという典型例ですな。 まぁ、このスレで言うのは無粋だけどw
325 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 22:30:29 ] うーん惜しいな。yだけじゃなくてxも最適化できる。 for(int iy = 0; iy < ye; iy++){ sumA += cy1; sumB += sy1; } for(int ix = 0; ix < xe; ix++){ sumC += cx1; sumD += sx1; } sum = sumC * (sumA+sumB) + sumD * (sumA-sumB); ま、こっちはオーダーレベルの最適化にならないがな。
326 名前:317 mailto:sage [2006/07/17(月) 23:01:47 ] ひーん、諦めかけてからレスがたくさんついてる〜 #あ、icc使用って書くの忘れてた。 そもそも、「コンパイラよりもアセンブラの方が絶対速い。ループ内部だけでもアセンブリ化しろ」と 主張する頭の固い人たちを納得させられればいいので、ループの最適化には手を出さずに済ませたいわけです。 で、「xmmレジスタは並列演算できるのだから絶対速い」というヒント(という名の指示)の元、 >317のようなコードを書いてみたわけですが。 処がこの程度のアセンブリ化ではC部分とのI/Fに時間を取られるようで効率が上がっていません。 実際元のソースをiccでコンパイルするとループをアンロールして4回分ずつ回すようです。 勿論SSE命令も使うし並列化オプションを指定すれば並列化してくれるし。 なので、このまま「保守性と開発工数を考えればコンパイラに任せたほうが無難」という報告をしてもいいのですが、 念のため(と技術的興味から)アセンブリ部分で無駄がないかを聞いてみたかったのです。 >>318 恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。 >>320 正直私には、gcc辺りのコードを書くのがやっと。iccに勝てるコードを書けるとは思いません。 #この場合、Cの単純な翻訳と言う意味で。 >>321 iccのマニュアルをさっと読んだ限りでは見た記憶がないのですが、調べてみます。 >>322-325 えーと、最終的なコードはもそっと複雑になるのでロジックレベルの最適化は>317で止めた次第です。 #後出しすんません。 ってことで、何かあれば引き続きお願いします。 #FPU命令とSSE命令って組み合わせるとどうなるのかなぁ。こればっかりはニモニック表にらめっこしてもわからん……
327 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 07:13:29 ] >恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。 インラインアセンブラの内部はコンパイラの最適化は効かない。 movsdやmovhlpsで1要素ずつ移動してるのが無駄だ。 >えーと、最終的なコードはもそっと複雑になるので それがどんなコードか書いてくれないとレスのしようがない。 >>324 のような最適化が最も重要なのに、それを検討する前から アセンブラの書き方を考えるのはちょっとおかしい。 >FPU命令とSSE命令って組み合わせるとどうなるのかなぁ。 それは面白いのでレスをしたいところだが、 どんな処理かわからんことには・・・。
328 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 07:27:13 ] >>327 >恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。 単純に、自前で書いてもコンパイラに任せても同じ程度のコードだと言っているだけだな。 アンロールしないと速度でないのは承知しているみたいだし。 >えーと、最終的なコードはもそっと複雑になるので 多少複雑になっても本筋は変わらんだろ。要はダメ出ししたいだけみたいだから。 >326はとっとと諦めてダメレポート書けばいいんでね。
329 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 07:39:41 ] >>326 >iccに勝てるコードを書けるとは思いません。 結果は出てるんじゃんw アセンブラで速度を問題にする場合はある程度センスが要求されますので、あきらめた方が良いかとおもわれ
330 名前:デフォルトの名無しさん mailto:sage [2006/07/22(土) 18:26:54 ] Technical Assemblerの掲示板、もはや機能してないねぇ‥‥ 大量のスパムURLでログが流されまくり。
331 名前:デフォルトの名無しさん [2006/07/29(土) 20:09:22 ] 一週間ぶりにあげ
332 名前:デフォルトの名無しさん [2006/07/29(土) 21:02:14 ] 差を割った数をサマリーするのにサマリーの差を割ってる馬鹿ども
333 名前:デフォルトの名無しさん mailto:sage [2006/07/29(土) 23:47:36 ] だれか助けてくれ!! MIPSでクイックソートを作らないといかんのだが分からん・・・ 言語はMIPSベースの16ビットマイクロプロセッサ用 で、基本MIPSと同じです。 違う点、MULT DIV命令が無い 即値ロードはlhi $a,label で上位1バイト lliで下位1バイト読み出すものとする。 詳しくは、 ttp://72.14.207.104/search?q=cache:S58cP_y64_MJ:www.giga.it.okayama-u.ac.jp/~nobuya/jikken/02/p16.pdf+lli+lhi&hl=ja&ct=clnk&cd=3&lr=lang_ja ソートされる要素の数は0x4000番地に 要素は0x4000から以下2バイト刻みで入っているものとする。
334 名前:デフォルトの名無しさん mailto:sage [2006/07/29(土) 23:58:44 ] クイックソートの仕方は知ってるの?
335 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:09:36 ] >334 それは、Cでは書けるんですが、 アセンブラになるとちょっとお手上げ状態です。 あとレジスタが8個しか使えない制限つきだったりします・・・。
336 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:30:28 ] レジスタが使えないのなら、メモリを使えば良いじゃない! 文句があるならベルサイユへいらっしゃい!
337 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:45:21 ] あとメモリなんですが、0xFFFFまで使用可能なんですが、 データが1026個はソートできる仕様との事なので あんまり深いスタックは惚れません・・・
338 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:52:59 ] 最適化OFFにしてCで書いたのを逆アセンブラしたのを参考にするとかは?
339 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:58:05 ] Cでソース書いて スタックの使い方決めて レジスタを割り付けて 手動で1行ずつ変換
340 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 09:58:32 ] NASMで絶対間接far callを書きたいんだけどどう書いたらいいの?
341 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 15:43:04 ] masmで32bitだと call qword ptr mem だったかな? よく覚えてないけど。
342 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 20:36:46 ] >>340 call far [edx] call far [0xdeadbeaf] >>341 call fword ptr MEM
343 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 23:43:52 ] >>342 のプログラムをコンパイルして実行したら不正な処理をしたとOSに怒られました! みなさんも気をつけてください!
344 名前:デフォルトの名無しさん mailto:sage [2006/07/31(月) 00:27:27 ] >>343 君もう来なくていいから
345 名前:デフォルトの名無しさん mailto:sage [2006/07/31(月) 12:43:27 ] 0xdeadbeef なら怒られないかも?
346 名前:デフォルトの名無しさん mailto:sage [2006/08/03(木) 18:42:07 ] C言語の x[n]=c1*delx という式をアセンブラに書き換えたらどうなるか必死に考えて mov eax,c1 mov ebx,delx mul ebx mov x[n],eax となるのではなかろうかと思うのですが、正しいですか。 これをVC++6.0でインラインアセンブラにしようとしたら、同じサイズのオペランドのが 必要とかでエラーでした。早くアセンブラを理解できるようになりたい。
347 名前:デフォルトの名無しさん mailto:sage [2006/08/03(木) 18:50:36 ] ebxをそんな用途に使う奴を始めてみた
348 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 00:52:54 ] >346 非常に基本的なことなんだが、まず x, n, c1, delx 全ての変数の型が不明。 仮に全てunsigned longだったとして、 mov eax,c1 mul delx で十分。 最後に x[n] という表記はナイ。
349 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 01:20:55 ] すっごい低レベルですが質問させてください。 「アセンブリの教科書」で勉強はじめたんだけど いきなりつまづいたの。P54のフラグレジスタの説明で mov al,7F inc al mov bl,0 sub bl,80 AX=0080 BX=0080 OV UP EI NG NZ NA PO CY ~~ ~~ 符号付き演算でAX=0080になるのはよく分かる。 (1000 0000)の1は符号ビットで 127+(-128)=-1にするため (1000 0000)は-128、(1111 1111)は-1と決められてる。 inc alで符号付き演算の桁上がりが生じたから オーバーフローフラグはOVとなる。 一方、符号無しの場合のsub bl,80では (0000 0000)-(1000 0000)=(1000 0000) つまり0-128=128の0は256扱いになってるから、 これってつまり(0000 0000)ではなしに桁上がりで (1 0000 0000)として扱われたってこと? 演算結果の桁上がりが生じてCYってのはそーいうこと? 一方が符号付きで他方が符号無しと判断されるのはなぜ?
350 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 01:21:57 ] CYの下線~~ずれた…
351 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 01:35:55 ] >>350 一般的に減算のあとのキャリーフラグは、ボローフラグの意味となる。 つまり、繰り上がりが生じたのではなく繰り下がりが生じたと言う意味。
352 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 01:47:10 ] >>351 あっ、なるほど。そのほうが意味的に納得です。 mov al,7F inc al が符号付きとして処理され mov bl,0 sub bl,80 が符号なしと処理された 扱いの違いの理由は何故でしょう? もしかしてalを使うと符号付きの演算扱いになるとか、でしょうか?
353 名前:デフォルトの名無しさん mailto:sage朝顔日記 [2006/08/04(金) 09:26:36 ] レジスタalとbを変えて試しても符号付、符号なしの結果の違いはないから これはincとsubの違いと見当をつけて先へ進むことにします。
354 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 10:43:51 ] あー、フォローするの忘れてた。 フラグリファレンスによると、x86系CPUではinc/decではCFは操作されない。 これは、8bitCPU時代からの伝統でキャリーをレジスタ(orメモリ)間で伝播させる用途で便利。 #最下位バイト同士をaddして、インデックスに使用するレジスタをインクリメントして2番目をadcして…… 尚、例えば68000の場合は対象がデータレジスタならフラグが影響を受けてアドレスレジスタでは影響を受けない。 この様に、フラグの振る舞いはCPUによって違うので、 実験から推測するのではなくリファレンスで調べておくことをお勧めする。
355 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 11:41:10 ] >リファレンスで調べておくことをお勧めする。 了解です。ありがとう御座いました。
356 名前:デフォルトの名無しさん [2006/08/14(月) 23:13:45 ] Ollydbgってなんで公式サイトのファイルぶっこわれてるの?
357 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 23:50:21 ] >>356 今試したら問題なくDLできたよ 再DLでいけるかと www.ollydbg.de/
358 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 23:58:37 ] >>356 OllyDbg日本語化パッチとOllyDbgQ&A hp.vector.co.jp/authors/VA028184/
359 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 11:08:26 ] acapulco.dyndns.org/doc/CodeAnalyst/simulation.htm
360 名前:デフォルトの名無しさん [2006/08/17(木) 12:41:45 ] 初歩的な質問なんですが mov WORD [100] 1 ってかくと ---------- 00000001 100番地 ---------- 00000000 101番地 ---------- ってメモリに書かれると思うのですが mov DWORD [100] 1 ってかくと ---------- 00000001 100番地 ---------- 00000000 101番地 ---------- 00000000 102番地 ---------- 00000000 103番地 ---------- の認識でいいでしょうか?
361 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 14:10:12 ] CPUによって違う。 リトルエンディアンのCPU(インテルx86等)ならその認識でいいと思う。 あとアセンブラによって記法が異なるので、今度質問するときはCPUと 使用アセンブラを書いた方がいいかも。(その記法は初めて見た。)
362 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/18(金) 01:21:50 ] mov DWORD PTR [100],. 1 か
363 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 03:07:16 ] つーかレジスタ経由しないで転送できるん?
364 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/18(金) 03:21:09 ] たしかにx86じゃ無理だな。。。
365 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 03:29:53 ] 何このレベルの低いコテ
366 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 04:25:49 ] あれ、x86でmov mem,immて出来なかったっけ?
367 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 06:57:08 ] メモリ同士は不可だが、即値はできるだろ…
368 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 09:59:58 ] どのみちレジスタファイル上に展開してからストアするので団子もある意味正解。
369 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 10:15:48 ] 純CISC時代しか知らないのでそんな話されても理解できません。
370 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 18:53:57 ] ハードワイヤードロジック・・・ (;´Д`)ハァハァ
371 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 23:59:19 ] エロいな。。。
372 名前:デフォルトの名無しさん [2006/08/19(土) 09:30:16 ] LINUXでMS-DOSのdebugみたいに 凡用レジスタ(ax,bx,cx...等)が表示するような ソフトってありますか?
373 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 09:34:23 ] >>372 「ぼんよう」って何? レジスタが何を表示するの? デバッグツールならgdbがあるけど。 #勿論汎用(はんよう)レジスタの値を表示することもできる。
374 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 10:35:57 ] 凡用レジスタ … 浮動小数点やSIMD演算など特別な機能はないが特に使い勝手が悪い訳でもない凡庸なレジスタ
375 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 11:24:52 ] 忘れられがちなreg15はeax/ax/alと姿を変える汎用レジスタより確かに凡庸かも知れん。
376 名前:デフォルトの名無しさん [2006/08/19(土) 12:49:54 ] >>373 おまえは誤字に反応しすぎだ。この変態や労が
377 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 13:25:57 ] (←なぜか変換できない)系の遊びにもいちいち突っ込んで回ってるんだろうな
378 名前:373 mailto:sage [2006/08/19(土) 13:33:39 ] >>377 いや、それらは99%放置。 いいじゃん、ちゃんと回答もしているんだから。
379 名前:デフォルトの名無しさん [2006/08/19(土) 14:24:16 ] リトルエンディアン しばしばビッグエンディアンより優れているとされる ビッグエンディアン しばしばリトルエンディアンより優れているとされる
380 名前:デフォルトの名無しさん [2006/08/19(土) 14:27:54 ] 小手先でなく真の実力が身につく本を紹介したまえ。 今時じゃない奴な。
381 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 14:39:16 ] つ『創るJava』
382 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 15:15:33 ] >>380 つ「IA-32 Intel(R) Architecture Optimization Reference Manual」
383 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/19(土) 15:32:49 ] 画像処理屋的には「アセンブラ画像処理プログラミング」あたりですかい あとは、先輩にとられて未だに返ってこないCQ出版社の2000円くらいの奴とか。 アレはイイ本だと思った。
384 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 15:43:03 ] アレ(x86アセンブラ入門)はいいよな。内容的には広く浅くだけど 自分でそれなりに調べたことのある人ならベストチョイス。安いし。
385 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 16:32:42 ] >>376 >>373 じゃないが,「凡用」は「はんよう」を変換しても絶対に出てこないので, 誤字以前の問題だと思うが.
386 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 18:03:22 ] >373 gdb使いにくいんですが 他に無いですか? OllyDbgきぼんぬ
387 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/19(土) 18:09:10 ] OllyDbgで汎用レジスタからマルチメディアレジスタまで見れるんじゃなかったっけ? ただ、SSE2以降の対応がされてなかったような。 Visual Studioのデバッガは結構強力だよ。
388 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 18:13:36 ] 使ったことはないが、idbだっけ? インテルのデバッガはどうなんだろう。
389 名前:デフォルトの名無しさん [2006/08/20(日) 11:44:44 ] 団子ってアセンブリ言語はどれくらいできるの?
390 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 12:56:24 ] 基本的にMM/XMMレジスタ周り。 SSE4がマイブームなのだがまだCore2Duoマシンが手元にないから困る。
391 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 13:20:14 ] >>390 Intel XeonのWoodcrestはどうよ? 30万円台からマシンが手に入るぜ
392 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 13:25:18 ] 今の預金じゃ確実にローン計画だな
393 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 13:28:19 ] 詳しくはこちらへ www.apple.com/jp/
394 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 14:25:03 ] IntelのチューニングコンテストでWoodcrestを使わせてくれるよ。 #って、今言っても無意味か。
395 名前:デフォルトの名無しさん [2006/08/20(日) 14:51:32 ] >>392 仕事は何をしてるの?
396 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 14:57:10 ] 画像系
397 名前:デフォルトの名無しさん [2006/08/20(日) 15:40:09 ] >>396 PGなの?
398 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 15:58:03 ] コテと遊ぶのはマ板でやってくれよ うざい
399 名前:デフォルトの名無しさん [2006/08/20(日) 16:30:07 ] >>396 仕事で使ってる言語は何?
400 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 17:10:56 ] 主にBrainF*ck
401 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 17:36:11 ] woodcrestで簡単な速度調査くらいできるけどなんかリクある?
402 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 17:36:51 ] 90 eb fd の速度調査求む
403 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 18:06:49 ] 整数演算でpand/pandn/por/pxorをandps/andnps/orps/xorpsに置き換えた場合のペナルティ って具体的に何クロックくらいなのか、とか。
404 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 18:09:08 ] 速度調査用Cソース求む。つーか、90 eb fdだけインラインアセンブラで並べて動かすの? #一体何のニモニックなんだろう。
405 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 19:43:02 ] たぶん LABEL: nop jmp LABEL
406 名前:デフォルトの名無しさん [2006/08/24(木) 07:04:12 ] MessageBoxA出すもので1500バイトより小さいEXE作る方法あるかい?
407 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 07:38:00 ] あるお( ^ω^)
408 名前:デフォルトの名無しさん [2006/08/24(木) 07:45:56 ] MASMでできるかな( ^ω^)
409 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 08:05:05 ] >>406 セクション一個にすれば1024バイトにできると思うよ。 .textや.data兼ねるインポートセクション作ればいい。 それより小さいのは無理ぽ。
410 名前:デフォルトの名無しさん [2006/08/24(木) 08:12:09 ] 1024とかならバイナリエディタでないと無理かな? PEが分かれば簡単かな? MZの次のバイトは何なんですか?
411 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 08:53:48 ] で、答えたら、次のバイトは何ですかとなるわけだな!
412 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 09:00:33 ] 00400000 4D 5A 50 00 02 00 00 00 04 00 0F 00 FF FF 00 00 MZP........ 00400010 B8 00 00 00 00 00 00 00 40 00 1A 00 00 00 00 00 ク.......@...... 00400020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00400030 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 ............P... 00400040 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 2E 24 コ.エ.ヘ!クLヘ!.$ 超適当
413 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 09:28:55 ] とりあえずVC++でもリンカオプションいじれば1024バイトまでは達成できることを確認。
414 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 10:59:44 ] /NODEFAULTLIBと/ENTRYと/MERGEと/OPT:WIN98で512バイトは可能
415 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 11:33:14 ] ファイルのアラインメントサイズって512以下にできるんだっけ?
416 名前:デフォルトの名無しさん [2006/08/24(木) 13:56:04 ] _____ _ / \ | |/ _ノ ヽ、_ \ ・・・もしもしお母さん、僕だお、僕・・・そう、ヨシオだお・・・ | | o゚⌒ ⌒゚o \ ・・・事故起こしちゃって・・・相手を怪我させちゃったお・・・ | | (__人__) | | |/ _ノ ヽ、_ \ ・・・お金がいっぱい必要だけどお金持ってないお・・・ | | o゚⌒ ⌒゚o \ ・・・うん・・・うん・・・今から言う口座にすぐ振り込んで欲しいお・・・ | | (__人__) | | |/ _ノ ヽ、_ \ ・・・お母さん・・・迷惑かけてばかりでごめんなさい・・・ | | o゚⌒ ⌒゚o \ ・・・うん・・・ありがとう・・・がんばるお・・・じゃあね・・・ | | (__人__) | プチッ… _ / \ ツーツー…| |/ _ノ ヽ、_ \ ・・・ | | o゚⌒ ⌒゚o \ | | (__人__) | |_| ` ⌒´ / § ∂ __ _ /⌒ ⌒\ | |/( ●) (●)\ | |::::::⌒(__人__)⌒::::: \ | | |r┬-| | |_| `ー'´ / § ∂ ∽
417 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 14:14:01 ] バイナリエディタで作れる最小のPEは256バイトより若干小さくできるけど 不正なexeで認識する環境もある
418 名前:デフォルトの名無しさん [2006/08/24(木) 17:00:20 ] 256バイトより若干小さいそのEXEはPEフォーマットに従ったものですか? 普通のWindowsのEXE(Notepad.exeなど)はOEではなくOMFですか? >>412 00400000 4D 5A 50 ←これ何ですか( ^ω^)
419 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 17:22:18 ] ちなみに、4096byteより小さくしても、通常は意味がない。 というのは、ページサイズが4Kな上、 FAT32もNTFSも、普通はクラスタサイズが4K以上だから。 FAT16(FDDとか)を使うとか、ネット上での転送量を気にするとかなら わずかに意味があるかもしれないが それ以外は、ただの自己満足。
420 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 17:30:02 ] >>418 PEヘッダへのオフセットの最下位バイト。
421 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 17:46:25 ] >419 >ネット上での転送量 普通圧縮かけるから結局無意味。 てか、サイズを小さくする目的でアセンブラ使ってる人はもう居ないでしょ。 組み込み系ですら見かけない。