![實(shí)現(xiàn)在Windows下直接讀寫(xiě)內(nèi)存的方法_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed1.gif)
![實(shí)現(xiàn)在Windows下直接讀寫(xiě)內(nèi)存的方法_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed2.gif)
![實(shí)現(xiàn)在Windows下直接讀寫(xiě)內(nèi)存的方法_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed3.gif)
![實(shí)現(xiàn)在Windows下直接讀寫(xiě)內(nèi)存的方法_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed4.gif)
![實(shí)現(xiàn)在Windows下直接讀寫(xiě)內(nèi)存的方法_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed/f3bc5138-d79f-4cbf-aac7-1acb82c8a8ed5.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)現(xiàn)在Windows下直接讀寫(xiě)內(nèi)存的方法 Windows以它一致的圖形用戶(hù)界面、完善的內(nèi)存管理等特點(diǎn),已被廣大用戶(hù)所接受,但在Windows下,計(jì)算機(jī)已運(yùn)行在保護(hù)模式,雖然Windows已提供了一整套的內(nèi)存管理函數(shù),用戶(hù)還是不可訪(fǎng)問(wèn)指定地址的內(nèi)存,致使許多中、小型企業(yè)開(kāi)發(fā)的計(jì)算機(jī)插件無(wú)法在Windows下使用,因?yàn)榫帉?xiě)驅(qū)動(dòng)程序是很費(fèi)事的。他們僅希望能直接讀、寫(xiě)電路板所占的內(nèi)存即可。本文介紹的是在Windows 3.1下,用Borland
2、0;C+ 3.1編程環(huán)境,實(shí)現(xiàn)用戶(hù)對(duì)內(nèi)存直接讀寫(xiě)的方法,讀者不難將它移植到其它編程語(yǔ)言。 1.利用Windows提供的各個(gè)段選擇符標(biāo)號(hào),在C源程序中將選擇符標(biāo)號(hào)說(shuō)明為外部變量。其對(duì)照表如下: 表1 2.利用宏定義MAKELONG(段內(nèi)偏移量,&段選擇符標(biāo)號(hào))即可得到一個(gè)長(zhǎng)指針。 3.經(jīng)上述方法得到的指針與C語(yǔ)言中定義的指針是一樣的。 4.如果使用的段是D000H或E000H或其它上位內(nèi)存時(shí),需改動(dòng)Windows的系統(tǒng)配置文件SYSTEM.INI,利用字符編輯器,在386Enh小節(jié)中加入EmmExclude=xxxxyyyy一行,禁止Windows使用這段存儲(chǔ)空間。
3、值xxxx和yyyy是16位內(nèi)存范圍。如開(kāi)發(fā)的插件占用D000H段的64K,則應(yīng)加入這樣一行:EmmExclude=d000-dfff。 利用這一方法,已使我們自己開(kāi)發(fā)的電路板(占用D000H段),在Windows控制下成功地運(yùn)行了。考慮到讀者沒(méi)有相應(yīng)的硬件,這里以讀取中斷向量、計(jì)算機(jī)ROM的制造時(shí)間和對(duì)DOS用戶(hù)通訊區(qū)的讀寫(xiě)為例,詳見(jiàn)以下程序。對(duì)于DOS用戶(hù)通訊區(qū)的內(nèi)容,讀者可用DOS的DEBUG程序檢查(D命令)和修改(E命令)。DOS的用戶(hù)通訊區(qū)在004000F0H處開(kāi)始,共計(jì)16個(gè)字節(jié)。在修改時(shí)請(qǐng)注意:從004000F0H開(kāi)始存放可顯示ASCII碼字符串,并以0結(jié)尾。 ; M
4、EMORY.DEF 模塊定義文件 NAME Memory DESCRIPTIONdemonstrate an intergrated menu EXETYPEWINDOWS STUBWINSTUB.EXE CODEPRELOAD MOVEABLE DISCARDABLE DATAPRELOAD MOVEABLE MULTIPLE HEAPSIZE1024 STACKSIZE8192 EXPORTSWndProc /*- MEMORY.RC 直接讀寫(xiě)內(nèi)存的資源定義文件 -*/ #include "
5、memory.h" MemoryMenu MENU BEGIN POPUP"取中斷向量&I" BEGIN MENUITEM "int 0&3h", IDM-INT03H MENUITEM "int &10h", IDM-INT10H MENUITEM "int &21h", IDM-INT21H END POPUP "ROM區(qū)域&R" B
6、EGIN MENUITEM "制造時(shí)間&T", IDM-TIME MENUITEM "取用戶(hù)通訊區(qū)&U", IDM-READ MENUITEM "存用戶(hù)通訊區(qū)&S", IDM-WRITE END MENUITEM "/a退出&X", IDM-EXIT END /*- MEMORY.H 直接讀寫(xiě)內(nèi)存的頭文件 -*/ #define IDM-INT03H 101 #define IDM-INT10H
7、102 #define IDM-INT21H103 #define IDM-TIME201 #define IDM-READ202 #define IDM-WRITE203 #define IDM-EXIT300 /*- MEMORY.C 用戶(hù)對(duì)固定內(nèi)存直接讀寫(xiě)的表演程序 -*/ #include<windows.h> #include "memory.h" #include <dos.h> int PASCAL WinMain(HANDLE,HANDLE,LP
8、STR,int); long FAR PASCAL WndProc(HWND,UINT,UINT,LONG); /*-WinMain()-*/ int PASCAL WinMain(HANDLE hInstance,HANDLE hPrevInstance ,LPSTR lpszCmdLine,int nCmdShow) MSG msg; HWND hWnd; WNDCLASS wndclass; if (! hPrevInstance) wndclass.styl
9、e=CS-HREDRAW | CS-VREDRAW; wndclass.lpfnWndProc=WndProc; wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hInstance=hInstance; wndclass.hIcon=LoadIcon(NULL,IDI-APPLICATION); wndclass.hCursor=LoadCursor(NULL,IDC-ARROW); wndclass.hbrBackground=GetStockObject(WHITE-BRUSH); wndclass.lpsz
10、MenuName="MemoryMenu" wndclass.lpszClassName="直接讀寫(xiě)存儲(chǔ)器" if (! RegisterClass (&wndclass) return FALSE; hWnd=CreateWindow( "直接讀寫(xiě)存儲(chǔ)器", "直接讀寫(xiě)存儲(chǔ)器", WS-OVERLAPPEDWINDOW, CW-USEDEFAULT, CW-USEDEFAULT, CW-USEDEFAULT, CW-USEDEFAULT, NULL, NULL, h
11、Instance, NULL); if (! hWnd) return FALSE; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); while (GetMessage(&msg,N ULL,0,0) TranslateMessage(&msg);DispatchMessage(&msg);return msg.wParam;/*-WndProc()-*/long FAR PASCAL WndProc (HWND hWnd, U
12、INT message, UINT wParam,LONG lParam)HDChDC;HPEN hOldPen,hNewPen;RECTrect;TEXTMETRICtm;PAINTSTRUCTps;UINT i;char Strbuf50;WORD far * InterruptVector;char far * bios;extern WORD-0000H;extern WORD-0040H;extern WORD-F000H;switch (message)case WM-COMMAND:switch (wParam)case IDM-INT03H:InterruptVector=(W
13、ORD far *)MAKELONG(0,&-0000H);wsprintf(Strbuf,"向量地址:%04X:%04XH/n",*(InterruptVector+0x06),*(InterruptVector+0x07);MessageBox (hWnd,Strbuf,"int 03h", MB-OK | MB-ICONSTOP);return 0;case IDM-INT10H:InterruptVector=(WORD far *)MAKELONG(0,&-0000H);wsprintf(Strbuf,"向量地址:%04X:%04XH/n",*(InterruptVector
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年婚禮汽車(chē)服務(wù)行業(yè)深度研究分析報(bào)告
- 廢機(jī)油深加工潤(rùn)滑油基礎(chǔ)油可行性研究報(bào)告申請(qǐng)備案
- 二手挖機(jī)購(gòu)買(mǎi)合同范本
- 倉(cāng)儲(chǔ)與快遞合同范本
- 2025-2031年中國(guó)萬(wàn)能磨刀機(jī)行業(yè)市場(chǎng)調(diào)查研究及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025年度經(jīng)濟(jì)適用房改造升級(jí)工程承包合同范本
- it設(shè)備合同范本
- 企業(yè)幫扶合同范本
- 借貸合同與欠款合同范本
- 上海epc合同范本
- GB/T 45177-2024人工光型植物工廠(chǎng)光環(huán)境技術(shù)規(guī)范
- 2025年中考語(yǔ)文模擬試卷(含答案解析)
- 2024-2025年天津河西區(qū)七年級(jí)上學(xué)期期末道德與法治試題(含答案)
- 2025年個(gè)人學(xué)習(xí)領(lǐng)導(dǎo)講話(huà)心得體會(huì)和工作措施例文(6篇)
- 2025大連機(jī)場(chǎng)招聘109人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2020-2025年中國(guó)中小企業(yè)行業(yè)市場(chǎng)調(diào)研分析及投資戰(zhàn)略咨詢(xún)報(bào)告
- 物流中心原材料入庫(kù)流程
- 長(zhǎng)沙市2025屆中考生物押題試卷含解析
- 2024-2025學(xué)年廣東省深圳市寶安區(qū)八年級(jí)(上)期末語(yǔ)文試卷
- 2024年芽苗菜市場(chǎng)調(diào)查報(bào)告
- 新版中華人民共和國(guó)會(huì)計(jì)法解讀學(xué)習(xí)課件
評(píng)論
0/150
提交評(píng)論