实现在Windows下直接读写内存的方法Word下载.docx
- 文档编号:21460863
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:5
- 大小:16.33KB
实现在Windows下直接读写内存的方法Word下载.docx
《实现在Windows下直接读写内存的方法Word下载.docx》由会员分享,可在线阅读,更多相关《实现在Windows下直接读写内存的方法Word下载.docx(5页珍藏版)》请在冰豆网上搜索。
从0040∶00F0H开始存放可显示ASCII码字符串,并以0结尾。
;
模块定义文件
NAME
Memory
DESCRIPTION’demonstrateanintergratedmenu’
EXETYPEWINDOWS
STUB’’
CODEPRELOADMOVEABLEDISCARDABLE
DATAPRELOADMOVEABLEMULTIPLE
HEAPSIZE1024
STACKSIZE8192
EXPORTSWndProc
/*----------
直接读写内存的资源定义文件
----------*/
#include"
"
MemoryMenuMENU
BEGIN
POPUP"
取中断向量[&
I]"
MENUITEM"
int0&
3h"
IDM-INT03H
int&
10h"
IDM-INT10H
21h"
IDM-INT21H
END
ROM区域[&
R]"
制造时间[&
T]"
IDM-TIME
取用户通讯区[&
U]"
IDM-READ
存用户通讯区[&
S]"
IDM-WRITE
“a退出[&
X]"
IDM-EXIT
直接读写内存的头文件
#defineIDM-INT03H101
#defineIDM-INT10H102
#defineIDM-INT21H103
#defineIDM-TIME201
#defineIDM-READ202
#defineIDM-WRITE203
#defineIDM-EXIT300
用户对固定内存直接读写的表演程序
#
#include
intPASCALWinMain(HANDLE,HANDLE,LPSTR,int);
longFARPASCALWndProc(HWND,UINT,UINT,LONG);
/*----WinMain()----*/
intPASCALWinMain(HANDLEhInstance,HANDLEhPrevInstance
LPSTRlpszCmdLine,intnCmdShow)
{
MSG
msg;
HWNDhWnd;
WNDCLASSwndclass;
if(!
hPrevInstance)
=CS-HREDRAW|CS-VREDRAW;
=WndProc;
=0;
=hInstance;
=LoadIcon(NULL,IDI-APPLICATION);
=LoadCursor(NULL,IDC-ARROW);
=GetStockObject(WHITE-BRUSH);
="
MemoryMenu"
直接读写存储器"
RegisterClass(&
wndclass))
returnFALSE;
}
hWnd=CreateWindow(
WS-OVERLAPPEDWINDOW,
CW-USEDEFAULT,
NULL,
hInstance,
NULL);
hWnd)
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&
msg,N
ULL,0,0))
TranslateMessage(&
msg);
DispatchMessage(&
return;
/*----WndProc()----*/
longFARPASCALWndProc(HWNDhWnd,UINTmessage,UINTw
Param,LONGlParam
)
HDC
hDC;
HPENhOldPen,hNewPen;
RECTrect;
TEXTMETRICtm;
PAINTSTRUCTps;
UINTi;
charStrbuf[50];
WORDfar*InterruptVector;
charfar*bios;
externWORD-0000H;
externWORD-0040H;
externWORD-F000H;
switch(message)
caseWM-COMMAND:
switch(wParam)
caseIDM-INT03H:
InterruptVector=(WORDfar*)MAKELONG(0,&
-0000H);
wsprintf(Strbuf,"
向量地址:
%04X:
%04XH“n"
*(InterruptVector+0x06),
*(InterruptVector+0x07));
MessageBox(hWnd,Strbuf,
int03h"
MB-OK|MB-ICONSTOP);
return0;
caseIDM-INT10H:
*(InterruptVecto
r+0x20),
*(InterruptVector+0x21));
int10h"
MBOK|MB-ICONSTOP);
caseIDM-INT21H:
r+0x42),
*(InterruptVector+0x43));
MessageBox(hWnd,Strbuf,"
int21h"
MB-OK|MB-ICONSTOP);
caseIDM-TIME:
bios=(charfar*)MAKELONG(0xfff5,&
-F000H);
MessageBox(hWnd,bios,
ROM制造时间"
caseIDM-READ:
bios=(charfar*)MAKELONG(0xF0,&
-0040H);
取用户通讯区内容"
caseIDM-WRITE:
for(i=0;
i10;
i++)*(bios+i)=‘A‘+i;
*(bios+10)=0;
MessageBox(hWnd,"
Write‘A‘-‘J‘charstring!
写用户通讯区内容"
caseIDM-EXIT:
SendMessage(hWnd,WM-CLOSE,0,0);
break;
caseWM-DESTROY:
PostQuitMessage(0);
default:
returnDefWindowProc(hWnd,message,wParam,lParam);
/*----EndProgrammingofDemo----*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 Windows 直接 读写 内存 方法