web
// 定義一個可讀可寫的區段
// 在區段裏面 定義一個變量 var =1 (這裏是區段第一個變量,因此坑定是 4kb對齊的起始地址)
declspec(allocate("data seg")) DWORD var = 1;
還能夠這樣申請區段並將變量分配進去:ide
int g_test1 = 5;
int g_test2 = 5;
int g_another = 5;
結果: g_test1 和 g_test2 被分配到 .test 段中, g_another 被分配到默認的 .data 段中
因此這個時候的 程序直接運行結果 不是預計的。 能夠這樣: 使用CE 先查看 如下那個內存數據 ( 也即至關於訪問了;因此會映射);這個時候,繼續第一個 system(pause) 繼而執行go 這個時候 就不會缺頁異常,因此在int20 處理函數裏面就能正確的賦值;這個時候程序輸出就是正常的了函數
運用一樣的道理這裏有兩種利用:ui
直接看到的代碼卻並非要執行的代碼;spa
或者須要 訪問如下刷新虛擬內存的映射。刷新代碼區域。3d