タグ

ブックマーク / hp.vector.co.jp (10)

  • Visual C++ の小技

    自分の書いたコードがどんな風にアセンブラに落ちているのか、確かめたくなることはありませんか? え、ない? ほんと? いや別にいいんですけど。 というわけで、コンパイル結果が気になるような人はたいていもう知っているはずなんですが、念のため。 一番簡単なのは、コンパイラにリスティングファイルを作らせることでしょう。 プロジェクトオプション、C/C++、リスティングファイルから指定できます。 出力結果は、中間オブジェクト出力先ディレクトリに a.cod とかで出てきます。 後は個人のお楽しみ。 普通にやると eip はインラインアセンブラでは取れませんが、次の関数を呼び出すことで取得できます。 LPVOID __declspec(naked) GetEip() { __asm mov eax, [esp]; __asm ret; } ↓の方で解説していますが、__declspec(naked)

  • __declspec(dllexport)を使ってエクスポート

    最初に「DLL概要」と 「エクスポートとインポートとリンク」を 読むと、すんなりと理解できるでしょう。 MSDNより引用しますが、説明はこれだけで十分です。 あとはサンプルを書いてみます。 __declspec(dllexport) キーワードを使うと、データ、関数、クラス、クラスのメンバ関数を DLL からエクスポートできます。__declspec(dllexport) を使う場合、エクスポート用の .DEF ファイルは不要です。 関数をエクスポートするには、呼び出し規約キーワードが指定されている場合、__declspec(dllexport) キーワードは呼び出し規約キーワードの左に記述します。以下に例を示します。 __declspec(dllexport) void __cdecl Function1(void); クラス内のすべてのパブリック データ メンバおよびメンバ関数をエクス

    yzx
    yzx 2009/01/11
  • fnami: AMD64

    2^20+HMA #4 #1 物理アドレスと仮想アドレスのビット数はCPUID命令のEAX=80000008hで得られる。 #2 ES,CS,SS,DSは0。FS,GSはセグメントディスクリプタまたはモデル固有レジスタで指定。 #3 x86では、ページサイズ拡張または物理アドレス拡張を有効にすると2^36になるが、AMD64のlegacyモードではそれぞれ2^40、2^52になる。 #4 リアルモードの特殊な状態を使うと、2^32になる。 各モードの区別は次のビットで行う。 legacyモードとlongモード: EFER(モデル固有レジスタC0000080h)のLMEビット compatibilityモードと64ビットモード: コードセグメントディスクリプタのLビット compatibilityモード中の16/32ビット: コードセグメントディスクリプタのDビット(legacyモードと同様

    yzx
    yzx 2009/01/11
  • MASMによるHSP用プラグインの作り方

    yzx
    yzx 2009/01/09
  • Audiograbber関連プログラム

    通常のMPx(*.mp1, *.mp2, *.mp3) 注:CBR/VBRを問いません。また、ID3タグv2にも対応しています。 RIFF/WAVE形式MP3(*.wav) RIFF/MP3(*.rmp, *.mp3

    yzx
    yzx 2008/07/22
  • How to optimize for the Pentium family of the microprocessors

    How to optimize for the Pentium family of the microprocessors (In Japanese)Original (in English): http://www.agner.org/assem/ Copyright (c) 1996, 2000 by Agner Fog. Last modified 2000-03-31. Translation into Japanese by Nobuhisa Fujinami and Takashi Itoh. Last modified 2000-05-30. このページは、Agner Fogさんによる同名のマニュアルの、藤波順久及び伊東尚志による日語訳です。原文(英語)の著作権はAgner Fogさんにあります。また、日語訳中の「私」とは、Agner Fogさんのことです。原文はhttp

    yzx
    yzx 2008/05/20
  • HOW TO OPTIMIZE FOR THE PENTIUM PROCESSOR

    HOW TO OPTIMIZE FOR THE PENTIUM PROCESSOR (In Japanese) Original (in English): http://announce.com/agner/assem/assem.html Copyright (c) 1996, 1997 by Agner Fog. Last modified 1997-08-19. このページは、Agner Fogさんによる同名のマニュアルの、藤波順久による日語訳です。原文(英語)の著作権はAgner Fogさんにあります。また、日語訳中の「私」とは、Agner Fogさんのことです。原文は http://announce.com/agner/assem/assem.html を参照してください。 このページは、現在更新中であり、原文の古い版(1997-03-16)に基づいている章がいくつかありま

    yzx
    yzx 2008/05/16
  • http://hp.vector.co.jp/authors/VA015412/colum/pe.htm

    yzx
    yzx 2006/12/30
    PEフォーマット
  • 名無し沢村の大ページ

    名無し@沢村こと、肥し@ほんたまの趣味のページ ↓魅力あるコンテンツの数々 ソフトウェア 『肥桶』 (C言語似の高級言語によるWindowsソフト開発環境) のダウンロード ソフトウェア 『Pancyan』 (ロープレ制作ソフト&ロープレ実行ソフト) のダウンロード アスキーアートギャラリー (おまけ) マイ 思い出のドラマ (おまけ) 掲示板 (新設!)

    yzx
    yzx 2006/12/30
  • memo : bcc32 options

    手持ちの BCB 1.01(BCC 5.2)ならびに BC3.1J (これは 16bit 版)のヘルプを元にしている。 これ以降に追加/変更/削除されたオプションについては一切関知しない。 (ついでに言うと、すべてのオプションを網羅してあるわけでもない) 当然、基的に無保証。 あしからず。 てゆうか bcc55 のフリー版に入ってるヘルプだとオプションの説明がサッパリ出ねえ。 たぶんアップデート用のでっかいヘルプを落とせば入ってるんだろうけど、ちょっとそれは…。 BCC32 オプション 説 明

    yzx
    yzx 2006/12/30
    BCCコンパイルオプション
  • 1