- 1 名前:デフォルトの名無しさん [2007/03/25(日) 21:19:33 ]
- アセンブラ全般に関するスレッドです。
【前スレ】 アセンブラ… (゜□゜) ↑アッー!↓ pc11.2ch.net/test/read.cgi/tech/1148402614/
- 52 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 01:18:18 ]
- Vistaは関係ないが、64bitでインライン使えないのは本当。
- 53 名前:デフォルトの名無しさん [2007/04/07(土) 02:19:34 ]
- >>52
64ビット環境のAPIフックするには1万ドル払ってDetours Professional 2.1っていうのを購入する必要があるみたいだね。 Microsoftって将来的には個人開発者を低レベルプログラミングから追い出すつもりなのかな?
- 54 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 02:24:57 ]
- mov cr0,0
mov cr1,0 mov cr2,0 mov cr3,0
- 55 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 06:16:44 ]
- >>54
(゚Д゚)
- 56 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 07:46:55 ]
- ml64で我慢しとけ。
- 57 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 13:46:11 ]
- >>54
最もやってみたいことだが、決してやってはいけないことだな。 cr系に即値って入れれたっけ?
- 58 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 14:19:20 ]
- おまらに聞きたいんだが今からアセンブラを勉強するとしたら
どんな本が一番いいと思う?
- 59 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 14:28:09 ]
- いまどきのアセンブラの教科書
- 60 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:21:52 ]
- どんな本がとか言われてもな。
メーカが供給してるその石の仕様書があれば他には何にも要らないと思うが。
- 61 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:53:06 ]
- >>58
アセンブラは、たとえばC言語のANSI Cみたいな業界標準がないから 「これ1冊でアセンブラを網羅」なんて教科書はない。 メジャーなアセンブラ(MASMなど)なら例外的に参考書が発行されている こともあるが、原則的には>>60の言うCPUの仕様書とアセンブラのマニュアル見るしかない。
- 62 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 18:19:04 ]
- >>59
どっちだよww
- 63 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 18:26:35 ]
- >>59
d.hatena.ne.jp/yaneurao/20050602
- 64 名前:41 mailto:sage [2007/04/08(日) 00:06:43 ]
- みなさん、どうもありがとうございます。
やはり書き込み時のキャッシュ問題ですか……。 K6-2や初代CeleronにはmovntqなどのSSE命令は実装されていないので、 その辺りでは今の二段階処理が現実的なのかもしれませんね……。 CPU別の切り替えも視野に入れて検討してみます。
- 65 名前:43 mailto:sage [2007/04/08(日) 08:59:02 ]
- >>64
家にPentiumII266MHzがあるので計測してみました。 count=800*600*3/8 src1,src2,destは各800*600*3バイト mov ebx, [src1] ; はeaxに修正しています。 PentiumII266MHz EDO-DRAM 素直なブレンド : 36msくらい 二段階のブレンド : 56〜57msくらい P6はWrite AllocateをOFFにできないので、 Write Allocateが機能している状態での計測です。
- 66 名前:43 mailto:sage [2007/04/08(日) 09:24:41 ]
- >>64
movntqが利用できないのであれば destをNOCACHE領域にしてしまうとか。 VirtualAlloc(,MEM_COMMIT,PAGE_READWRITE|PAGE_NOCACHE) で領域確保して、書き込み処理が終わったら VirtualProtect(,PAGE_READWRITE,) でCACHE可に属性変更する等。
- 67 名前:41 mailto:sage [2007/04/09(月) 21:58:55 ]
- VirtualAllocでキャッシュの有無まで指定できるなんて、今まで知りませんでした。
K6-2で試してみたところ、WA ONでも、VirtualProtectを入れて40ms弱で素直なブレンドが実行できました。 これなら十分に使えそうです。 キャッシュをオフにしたことでPen4等では遅くなりましたが、 これは初回起動時にでも計測して保存しておけば切り分けられそうです。 どうもありがとうございます。 それにしても、Pen2ってそんなに速いんですね……。 Intel系のCPUは心配せずとも良いのかもしれません。
- 68 名前:デフォルトの名無しさん [2007/04/14(土) 18:50:56 ]
- 64bitOSではアセンブラ使えないのですか?
それともインラインが使えないだけ? インラインどうしても使いたい場合の代替ってありますか。
- 69 名前:デフォルトの名無しさん mailto:エイトワンのファン [2007/04/14(土) 18:54:00 ]
- 島根県のみなさん、パチンコをするなら、
優良パチンコ店 エイトワン に行こう! 遠隔(※1)を絶対やってないのは「エイトワン」だけ! 違法ロム(※2)を絶対使ってないのも「エイトワン」だけ! エイトワンでは、遠隔等が可能な設備は入れていません。 ロムも、警察がチェックしやすいようにしています。 詳しい方はご存知の通り、どんなにパチンコの遊戯人口が変動しても、その市場規模は変わりません(※3)。 要するに、客が減っても、残った客から絞り盗る量を増やして調整しているのです。 しかし、何故それが可能なのか?…ご理解頂けると思いますが、9割以上の店が確実に遠隔等を行ってます。 1万店以上の中でも、遠隔も違法ロムも確実にやってないのは「エイトワン」1店だけです! ※1…遠隔とは 「お、あの客は新顔だな。勝たせて味を占めさせるか。遠隔操作で設定変更しよ」 「客が減ってきたな。ま、設定を絞めて(1人あたりから)搾る量を増やせばいいか」 「あのオヤジ負け続けてるからそろそろ辞めるかもな。今日は勝たせてやるか」 ※2…違法ロムとは 「うちのアタリ確率は、もちろん他と同じ『○○○分の1』ですよ!(ロムいじってるからウソだけど)」 ※3 市場規模 遊戯人口 平成06年 30兆4,780億円 2,930万人 平成08年 30兆0,630億円 2,760万人 平成10年 28兆0,570億円 1,980万人 平成12年 28兆6,970億円 2,020万人 平成14年 29兆2,250億円 2,170万人 平成16年 29兆4,860億円 1,790万人
- 70 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 18:54:40 ]
- モジュールとして、リンクするくらいしかない場合
それって速度の面でどうなの。
- 71 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:06:07 ]
- >>68
よほど特殊なCPUで無い限り使える。 インライン?というのはCのことか何を言いたいのか不明。 >>70 中身というかその処理内容次第。
- 72 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:32:53 ]
- >68
インライン? このスレは、インラインアセンブラの「中のコード」については話せると思うが 「インラインアセンブラを使うには」という内容ならその処理系のスレで訊きな
- 73 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:44:26 ]
- インラインアセンブラ使うとコンバイラがバグるよ
- 74 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:13:34 ]
- CPUとかOSとかコンバイラ(笑)の具体的情報もないのに
>64bitOSではアセンブラ使えないのですか?それともインラインが使えないだけ? >インラインアセンブラ使うとコンバイラがバグるよ って会話が成立する摩訶不思議なスレはここですか^^
- 75 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:42:08 ]
- アセンブリ言語で書く必要があるならインライン・アセンブラなんて中途半端なことせずにアセンブラ使え。
インライン・アセンブラを使わないと性能が出ないような処理系なら窓から投げ捨てろ。
- 76 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 20:53:36 ]
- エー(´д`)
- 77 名前:デフォルトの名無しさん [2007/04/14(土) 21:07:14 ]
- 押す!
- 78 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 21:39:11 ]
- >>75
それ、激しくマンドクセ
- 79 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:13:22 ]
- だがソース中にインラインアセンブラが散在していると
環境が変わったとき、もっとマンドクサイことに…
- 80 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 22:20:32 ]
- その辺は設計次第でどうにかなる
大体速度要求されるような部分って限られてるし
- 81 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:30:39 ]
- 少し前に、64bitだとCであれJAVAであれ、「インラインアセンブラは絶対通らない」と言われていた。
- 82 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 23:53:16 ]
- どこの世界の話ですか?
Windows 方面かな?
- 83 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 02:22:23 ]
- ヌコモフモフシタイオ
- 84 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 02:42:32 ]
- M$が64bit版VC++でインラインアセンブラを止めたことに尾ヒレがついてそういう話になったんだろうが・・・
しかしまあ、64bitなCPUでもインラインアセンブラ使わにゃならんと言うのも、それはそれで哀しいものがあるな。
- 85 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 02:50:57 ]
- 64bitインラインアセンブラについて
ttp://www.codeproject.com/vista/vista_x64.asp#Inline_Assembly 代わりの構文が用意されているみたい
- 86 名前:デフォルトの名無しさん [2007/04/15(日) 10:48:47 ]
- シェーダもそうだ
Direct3D version10 では、アセンブリシェーダが一切許容されなくなった。 HLSLやGLSLよりも簡単かつ速いのに。 固定機能の廃止でシェーダで代用しろとか、 64bit用VCでアセンブラ使えないとか、マイクロソフトはどうなっているんだ。 そういうことをするから、「絶対必要なのに誰も知らないアセンブラ」になっていくんだ。 ウィルススキャンは、言ってみればリバースエンジニアリングだが、 リバースエンジニアリングにはアセンブラの知識が必要だ。 それでなくてもハード屋と密接に絡むソフト屋はアセンブラの知識が必要だ。 それなのにこれ以上マイナー言語にしてどうしたいと言うのか
- 87 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 11:58:49 ]
- >>86
>>56
- 88 名前:デフォルトの名無しさん [2007/04/15(日) 12:37:52 ]
- 64bitだとAPIフックもできないの?
- 89 名前:デフォルトの名無しさん [2007/04/15(日) 22:46:32 ]
- >>88
できない × やらせない ○
- 90 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 10:28:26 ]
- >>85
紛らわしい事を言うな 代わりの構文でインラインアセンブラが利用可能なのかと思ったじゃないか
- 91 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 12:02:23 ]
- >代わりの構文でインラインアセンブラが利用可能なのかと思ったじゃないか
可能でしょ。
- 92 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 20:54:55 ]
- >>90の思考、__asm と 組み込み関数は違う
>>91の思考、__asm と 組み込み関数は同じ
- 93 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 22:00:57 ]
- > >>91の思考、__asm と 組み込み関数は同じ
このスレ的にはありえない思考回路だな...。
- 94 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 01:00:05 ]
- すみませんが、.NETのアプリをnasmとかで作れます??
- 95 名前:デフォルトの名無しさん [2007/04/21(土) 01:08:21 ]
- 無理にきまってんだろ
- 96 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 01:10:52 ]
- >>94
つ ilasm
- 97 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 01:42:04 ]
- >>94
dbで直接書けばOK
- 98 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 01:49:51 ]
- >>94
>nasmとか といわれても。 アセンブリ言語で書けるか、ということならできる。
- 99 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 01:58:57 ]
- >>97
バイナリエディタのほうが絶対いいw
- 100 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 02:34:42 ]
- 相対アドレスを計算して入力するのが面倒だったのでmasm+exe2binでz80のプログラムを作ったことがあるな
- 101 名前:デフォルトの名無しさん [2007/04/22(日) 12:55:12 ]
- 質問でございます
いまいちよくつかめないんですが、メモリを確保する場合(文字列でも何でもいいです)、通常ヒープに確保され、 ローカル変数だけスタック、という認識であっていますか? ちょっとスレ違いかもしれないんですが、このスレのエロい方々が一番詳しそうなので。
- 102 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 12:58:06 ]
- ものによる。
- 103 名前:デフォルトの名無しさん [2007/04/22(日) 13:01:10 ]
- おーっそこをなんとかお手数ですがkwskお願いします><
- 104 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 13:01:22 ]
- ものによるけど、普通の PC で普通の言語使ってるならそうな事が多いんでない?
- 105 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 13:22:10 ]
- >>101
*まず言語と質問の意図を教えれ* このスレどおりアセンブラなら、何をどこにとろうが自由だ。 Cのグローバル変数に相当するものならヒープにとるだろうし 一時的な文字列領域ならスタックにとることもある。 まさに>>102の言うとおりだ。
- 106 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:08:29 ]
- アッー!!そうか、アセンブラだとpushすればスタックだし、heapallocをcallすればヒープか・・・
処理系はC++なんですが、コンパイラに依存ってことですね。
- 107 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 14:14:22 ]
- アセンブラから見れば、ヒープもスタックも、グローバル変数も、みんなメモリ
メモリの確保は静的にする場合と動的にする場合とがあるけど 動的に確保する場合の概念としてスタックだのヒープだの発明したわけだ。 その2つしかないわけじゃなく、オーディオのフィルタ処理なんかはリング遅延器とか色々あるわけ
- 108 名前:デフォルトの名無しさん [2007/04/22(日) 15:05:10 ]
- なるほどねー。ちょっと微妙に納得いかないのは、
スタックはなぜEXEイメージのヘッダに最大サイズが定義されて、それ以上は制限されるのに ヒープはメモリあるだけ確保できる。 これはデータ構造の用途を分けるためですか?
- 109 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 15:16:00 ]
- それはwindowsの話をしてるんだよね?
多くの環境で、データ・ヒープは上(小さい方)から、スタックは下(大きい方から)取られる。 これなら、どっちかが制限されるのはおかしいという事だろ? で、x86は仮想記憶をサポートしてるから、SSの領域も 上にどんどん確保してゆく事も理屈の上では可能。 でも、 windowsはスレッドを実装してるから、スタック領域が複数必要になる。 だから、スタックは最大サイズを決めておかないと、困った事になるわけだ
- 110 名前:・∀・)っ-○◎● mailto:sage [2007/04/22(日) 15:16:38 ]
- ヒープにも限界はあるよ。
スタックは連続したメモリを必要とする。 不連続なデータでいいなら、確保できる容量は多くなる罠。 最近のOSは仮想メモリ機構があるから、実メモリ容量以上、 スワップファイル分だけ確保できたりするんだが。。。
- 111 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 15:39:47 ]
- >>108
Windowsの話な。 アレは仮想メモリを使ってるから、プロセス毎(大雑把にいえばEXE毎)に 2GBのメモリ領域を割り当てられるわけだ。32bit Windowsのユーザー領域ね。 実際にメモリを2GB積んでるかどうかは関係ないぞ。 とにかく、EXE毎に2GBのメモリを積んでると思いねえ。 で、スタックというのは(再帰呼び出しでもしない限り)何MBも食うことはあまりない。 一方、ヒープは画像や映像などメモリバカ食いすることがあるので、2GBのうち 相当部分をヒープで管理しなくてはならない。 原始的なOSはスタックを制御してないので、 スタックを超えてもぐんぐんヒープ領域を侵していく。 その結果、理由の分からないバグに遭遇してしまう。 Windowsは、スタックを使い切ったらエラーを出す仕組みになってるので EXEにその領域を書き込んでる。 で、なぜヒープじゃなくてスタックの方を制御するのかというと、 スタックは一回の取得−開放が直前のスタックと連続してるので管理しやすい。 ヒープは、気まぐれに領域をとり、気まぐれに開放されるので穴ぼこだらけになる。 と、スタックの方が管理しやすいからだと思いますよ。
- 112 名前:デフォルトの名無しさん [2007/04/22(日) 17:09:09 ]
- >>109-111
うおーありがとう>< そうです、Windowsしか知らないので>< スタックはOS管理⇒プロセスを超えるスタックオーバーフロー検出のため ヒープは制限がない(仮想メモリサイズ:x86なら2GB)⇒メモリに対し断片的にアロケートするため (逆にスタックはその性質上連続したメモリ領域が必要なので、最初に固定サイズの連続領域を 確保するため、そのアロケートサイズをEXEヘッダに持っていなければいけないので制限される) これが全ての理由ではないかもしれませんが、 上述の理由等でスタックとヒープのそれぞれの役割が決まっているわけですね。 そしてその決まりは処理系によって異なり、アセンブラの場合はむしろ人によって使い方が 異なる場合がある、という感じでしょうか。 かなり勉強になります!!
- 113 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:32:21 ]
- 試したことないからわからんが、もしかしたら64bitのVCでもインラインマクロアセンブラ(非MASM)使えるんじゃね?
ちなみに↓はx86用。 // インラインマクロアセンブラ? // WINAPI*は環境に合わせて書き換えてね typedef void (WINAPI* FUNCTION)(); #define ASM_CALL(function) {FUNCTION f=(FUNCTION)(void*)function;f();} // 必要なのあれば追加 #define RET 0xc3 #define MOV_EAX(a) (char)0xb8,(char)(a&0xff),(char)((a>>8)&0xff),(char)((a>>16)&0xff),(char)((a>>24)&0xff) // eaxに16入れるだけ unsigned char function[] = { MOV_EAX(16), RET }; // 呼び出してみる ASM_CALL(function); まぁ、ネタだけどな・・・ だれかx64用の命令セット定義してちょ ヽ(;´ー`)ノ
- 114 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:34:11 ]
- まあC++Builderが出来るようになるだろ
ダメならDelphi for win64で書いて リンクするさ
- 115 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:49:52 ]
- >>112
制限しなければいけないもっとも重要な理由はスレッドのサポートにあると思うよ。 スレッド間でスタック領域も共用しなければいけないからね
- 116 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:57:39 ]
- >>113
( ゚д゚)ノ ドゾー ttp://homepage1.nifty.com/herumi/soft/xbyak.html
- 117 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 00:58:01 ]
- emit でただバイナリねじこんでるのと同じでは・・・
tc1の時代に逆戻り?
- 118 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 09:56:42 ]
- >>113>>116
データ実行で吹っ飛ばないのですか?
- 119 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 10:26:10 ]
- DSやSSにあるコード実行が禁止出来てるなら バッファオーバーランの脆弱性などだいぶ緩和できてたろう
- 120 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 10:54:44 ]
- 最近のCPUだとEXビットとか聞いたもので、どうなんでしょか
- 121 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:12:32 ]
- linuxの場合、mprotectで実行属性を与えるようになってる。
Windowsの場合も、VirtualAllocやVirtualProtectで実行権限与えればOKよ。
- 122 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:12:34 ]
- windowsは16bitの昔からダブルポインタを解決するためにthunkとよばれる
動的に小さいコードを作る技術を使ってきたからな。 当時はDLLでDSを渡す為に使われた。 32bitになっても、DelphiのVCLなんかでは WinProcからObjectとメソッドアドレスの2つを 作りだすために使われている。
- 123 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:16:57 ]
- 実行時にコード変更(生成)するのってマルチスレッドとかとの相性どうなんだろう
- 124 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:22:30 ]
- >>123
そのコード空間がスレッドごとに独立していれば大して問題にならない。
- 125 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:30:39 ]
- スレッドセーフなコードを動的に生成するのか
難度高くね?
- 126 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:33:17 ]
- Windowsの場合、実行空間からスレッドごとに独立した領域へって、
単純にプログラムカウンタでジャンプできるんだ… >>116はちゃんと見てないけど、実行属性やスレッド独立の 問題はケアしてるのかね
- 127 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:35:22 ]
- ダブルポインタを解決するだけの短いコードって事は、単に
即値ロードしてジャンプするだけ リソースにアクセスするわけじゃないからさ
- 128 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:36:04 ]
- >>125
それはまた別問題な気がする。グローバル変数使わないで、 コードを生成する領域をTLSにしちゃえば干渉しないだろうし。 そもそも排他問題とかからむコードを動的に生成するシチュエ ーションってあまり多くないんじゃ
- 129 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:40:01 ]
- >>127
それって32ビット以上のWindowsでは関係ないんだよね? マルチスレッドだと如何に簡単な処理でも(というか簡単な 処理だからこそ)、何も考えないでコード生成したらまずい だろうし。
- 130 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:44:30 ]
- >>129 自分が想像で勝手に怖がるのはいいが、それを一般論に押し広げないでくれよ。
マルチスレッドで注意しなければいけないのはどういう操作くらいかは理解して書いてるのか?
- 131 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:52:07 ]
- >マルチスレッドで注意しなければいけないのはどういう操作
スレッド間で共有されている部分を排他処理しないで変更すること
- 132 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:54:25 ]
- あと、共有部分の読み込みに関しては場合による
- 133 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 11:56:01 ]
- >>131
そう、一つは正解。 もう一つは、複数のリソースを参照するコードが別のスレッドで変更されてる場合、 たとえば、ダブルワードカウンタの参照のような問題点。 ダブルポインタを得るだけのコードは、作成されなければ実行されず、 作成された後は変更されないのだから、注意する対象に入るかどうかも判るだろ。
- 134 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 12:00:59 ]
- >>129
あと、32bit以上になっても、結局32⇔64の変換でthunkは使われるように思うな 理由は、テーブル変換のような仕組みはそれこそマルチスレッド対応に苦労するだろうから
- 135 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 12:15:01 ]
- >>133
>作成された後は変更されない 作成された後は変更されないようなコードなのに、リンク時や そうでなくともEXEロード時に解決してしまわないのはなぜでしょう?
- 136 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 12:18:02 ]
-
Make何とかInstance ってのを一つも使った事が無いのか?
- 137 名前:デフォルトの名無しさん mailto:sage [2007/04/23(月) 13:06:15 ]
- >>135
その時に解決出来ないからだろ DLLの場合は、コールバック時のセグメントはDLL側じゃ判らない。 VCLの場合は、コンポーネントをヒープに確保した後でなければ メソッドポインタは確定しない
- 138 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 00:00:03 ]
- x86で論理和を行う時、被演算数の一方が0以外なら必ずゼロフラグは0にセットされて
被演算数の一方が0の時に論理積を行えば必ずゼロフラグは1にセットされる、という理解であってますか?
- 139 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 01:01:07 ]
- わざわざ変に難しく言うな!
そんな言い方するからわかんなくなったじゃないか!! 俺にわかるのは、0とANDすりゃZ=1、0以外とORすりゃZ=0って事くらいなんだからよ!!!
- 140 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 01:23:34 ]
- >>138
釣りをしたいなら別に止めないけど...。 一応マジレスしとくと 論理和、論理積にかかわらず ・「結果」が 0 なら ZF = 1, 0 以外なら ZF = 0 と理解しておかないと、Add/Sub なんかの時に困っちゃうぞ。(w
- 141 名前:138 mailto:sage [2007/04/28(土) 01:34:15 ]
- >>139,140
すいません、釣りじゃないです 習い立てでどう表現していいかよく分からなかったので…ありがとうございました
- 142 名前:デフォルトの名無しさん mailto:sage [2007/04/28(土) 04:35:02 ]
- アセンブラを勉強しようと思うのですがお勧めの書籍などはありますか?
当方Cの基本、Javaで簡単なプログラムが書ける程度の知識を持っております。 何かありましたら紹介よろしくお願いします。
- 143 名前:デフォルトの名無しさん [2007/05/13(日) 17:20:17 ]
- >>142
x86ならインテルのマニュアルでも読めばいいよ
- 144 名前:デフォルトの名無しさん [2007/05/13(日) 17:50:57 ]
- >>143
いんてるのまにゅあるは既にアセンブリ言語の基礎を会得しているプロの(職業の)開発者向けだろ。 しかもプロセッサの仕様とかデータシートとかエラッタ情報とか、アセンブラの本質とは関係ないし。 俺は独学で習得したが、参考書とかはほとんど読まなかったな。ソース読んでるうちに感覚で覚えてしまった。 他の人はどうやって習得したんだろう?
- 145 名前:デフォルトの名無しさん [2007/05/13(日) 17:53:42 ]
- CQ出版の古書が参考になる。
ただ、今現在でアセンブラ使えてもほとんどメリットなし。
- 146 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:29:33 ]
- リバースエンジニアリングや、最適化をするにはアセンブラを使えないと話にならない。
というか、コンピュータを理解するにはアセンブラでないと話にならない。 コンパイラに頼りっきりのアホが何作れるかというと、たいした物は作れない。
- 147 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:31:43 ]
- そういう分野って違法とか衰退してるじゃない。
仕様通り作ってればいいんだよ。
- 148 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:38:44 ]
-
ウィルスであるかどうかの解析は、リバースエンジニアリングが出来ないと話にならない。 そして、アンチウィルス業界はいつも人手不足。 そして需要が途切れることはない。
- 149 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:40:48 ]
- 1人か2人だろ。
- 150 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:43:49 ]
- まあ、アセンブラが使えるだけじゃ話にならんがな。
- 151 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 18:46:46 ]
- アンチウィルス業界←笑いどころ
- 152 名前:デフォルトの名無しさん [2007/05/13(日) 18:48:19 ]
- 論破されて泣き出したぞw
|

|