0

コード セグメント サイズを 16 mb にする方法を探しています (c++ バイト コード サイズは 16 MB です)。

4

1 に答える 1

5

関数の__asm{}に16MBのnop命令をコピーして貼り付けます。そして、その機能を使用しないでください。各nopは1バイトである必要があります。その後、あなたは物事を持っているでしょう。その場合に必要となる動的にコードを変更するメカニズム。

1つのnopを2つのnopにコピーします。次に、2つのnopを4つのnopにコピーします。これを24回行うまで(24ビットは1600万の違いに相当しますか?)

そのためにいくつかの最適化を無効にする必要があることをあなたに伝えるのを忘れていました。または、すべての最適化をオフにしてデジタルマーズを使用することもできます。

別のファイルでこれを行うことをお勧めします(多分含む)

リンクをより速くしたい場合は、16バイトに揃える必要があります。

main_program.cppのサンプル

#include<your_16MB_nop>
#include<....
....
int main(){/* whatever here */}

your_16MB_nopのサンプル

void func_never_used_directly()
{
    __asm
        {
         nop
         nop
         nop
         ... 16million times(just copy and paste each last block for 24 times)
         nop 
         }
 }
于 2012-08-08T13:30:35.770 に答える