2012-08-08 9 views
0

我在尋找創建代碼的方式,segement的大小應該是16 MB(C++字節代碼大小是16 MB)如何創建代碼段的大小應該在16 mb(以字節代碼)大小C++程序

+0

我希望人犯規明白的問題做下來投票 – joe 2012-08-08 13:30:29

+0

既然你已經通知你的問題不是很清楚,你可以添加一些澄清,並告訴你想達到什麼目的? (aslo必須是你正在使用哪個工具鏈) – mathk 2012-08-08 15:13:45

回答

5

在__asm {}中複製並粘貼16MB的nop指令。並不使用該功能。每個nop必須是1字節。然後你會擁有這個東西。動態代碼更改機制,然後您將需要。

你會複製1 nop到2 nops。然後將2個諾福克複製到4個諾福克中。直到你做了24次(24位等於1600萬不同我是吧?)

我忘了告訴你,你需要禁用一些優化。或者,您可以使用數字火星,關閉所有優化。

建議你在一個單獨的文件做到這一點。(也許包括)

如果你想鏈接更快,你應該讓16字節對齊。 your_16MB_nop

的main_program.cpp的

樣品

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

樣品

void func_never_used_directly() 
{ 
    __asm 
     { 
     nop 
     nop 
     nop 
     ... 16million times(just copy and paste each last block for 24 times) 
     nop 
     } 
} 
+0

你可以給我一個示例C++代碼,請你.. – joe 2012-08-08 13:37:47

+1

這裏是樣本 – 2012-08-08 13:41:27