0

コードを書いてexeにコンパイルしましたが、.textセクションを大きくする必要があります。コードがあり、コンパイルする前にコードから.textセクションにより多くのスペースを割り当てたい場合、どうすればよいですか? いくつかのバッファを割り当てますか?

コードまたはコンパイル オプションを変更して、LARGER .TEXT セクションを含むバイナリ ファイルを作成しようとしています。

私のコンパイラ VisualStudio2010 または cl.exe

バイナリ ファイルへのパッチ適用はより複雑です

4

1 に答える 1

1

それが本当にあなたが望むものであると仮定すると、インライン アセンブリを使用できます。たとえば、gcc+gas の場合:void unused_global() { __asm(".space 10000"); }

Visual Studio の cl.exe の場合は、もっとトリッキーなようです。インライン asm にはディレクティブがなく、REPT も使用できません。私なら、masm を使って多数の nop を個別にコンパイルします。それ以外の場合は、次のようにする必要があります。

#define NOP __asm { NOP } ;
#define NOP8 NOP NOP NOP NOP NOP NOP NOP NOP
#define NOP64 NOP8 NOP8 NOP8 NOP8 NOP8 NOP8 NOP8 NOP8 
#define NOP512 NOP64 NOP64 NOP64 NOP64 NOP64 NOP64 NOP64 NOP64
#define NOP4096 NOP512 NOP512 NOP512 NOP512 NOP512 NOP512 NOP512 NOP512
#define NOP32768 NOP4096 NOP4096 NOP4096 NOP4096 NOP4096 NOP4096 NOP4096 NOP4096
void unused_global() { NOP32768 }
于 2013-01-05T10:24:17.607 に答える