- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实现在Windows下直接读写内存的方法_计算机论文.doc
实现在Windows下直接读写内存的方法_计算机论文
实现在Windows下直接读写内存的方法_计算机论文
Windows以它一致的图形用户界面、完善的内存管理等特点,已被广大用户所接受,但在Windows下,计算机已运行在保护模式,虽然Windows已提供了一整套的内存管理函数,用户还是不可访问指定地址的内存,致使许多中、小型企业开发的计算机插件无法在Windows下使用,因为编写驱动程序是很费事的。他们仅希望能直接读、写电路板所占的内存即可。本文介绍的是在Windows3.1下,用BorlandC++3.1编程环境,实现用户对内存直接读写的方法,读者不难将它移植到其它编程语言。
1.利用Windows提供的各个段选择符标号,在C源程序中将选择符标号说明为外部变量。其对照表如下:
表1 2.利用宏定义MAKELONG(段内偏移量,amp段选择符标号)即可得到一个长指针。 3.经上述方法得到的指针与C语言中定义的指针是一样的。 4.如果使用的段是D000H或E000H或其它上位内存时,需改动Windows的系统配置文件SYSTEM.INI,利用字符编辑器,在[386Enh]小节中加入EmmExclude=xxxxyyyy一行,禁止Windows使用这段存储空间。值xxxx和yyyy是16位内存范围。如开发的插件占用D000H段的64K,则应加入这样一行:EmmExclude=d000-dfff。
利用这一方法,已使我们自己开发的电路板(占用D000H段),在Windows控制下成功地运行了。考虑到读者没有相应的硬件,这里以读取中断向量、计算机ROM的制造时间和对DOS用户通讯区的读写为例,详见以下程序。对于DOS用户通讯区的内容,读者可用DOS的DEBUG程序检查(D命令)和修改(E命令)。DOS的用户通讯区在0040∶00F0H处开始,共计16个字节。在修改时请注意:从0040∶00F0H开始存放可显示ASCII码字符串,并以0结尾。
MEMORY.DEF模块定义文件
NAME
Memory
DESCRIPTION’demonstrateanintergratedmenu’
EXETYPEWINDOWS
STUB’WINSTUB.EXE’
CODEPRELOADMOVEABLEDISCARDABLE
DATAPRELOADMOVEABLEMULTIPLE
HEAPSIZE1024
STACKSIZE8192
EXPORTSWndProc
/*----------
MEMORY.RC
直接读写内存的资源定义文件
----------*/
#includememory.h
MemoryMenuMENU
BEGIN
POPUP取中断向量[ampI]
BEGIN
MENUITEMint0amp3h,IDM-INT03H
MENUITEMintamp10h,IDM-INT10H
MENUITEMintamp21h,IDM-INT21H
END
POPUPROM区域[ampR]
BEGIN
MENUITEM制造时间[ampT],
IDM-TIME
MENUITEM取用户通讯区[ampU],IDM-READ
MENUITEM存用户通讯区[ampS],IDM-WRITE
END
MENUITEM\a退出[ampX],
IDM-EXIT
END
/*----------
MEMORY.H
直接读写内存的头文件
----------*/
#defineIDM-INT03H101
#defineIDM-INT10H102
#defineIDM-INT21H103
#defineIDM-TIME201
#defineIDM-READ202
#defineIDM-WRITE203
#defineIDM-EXIT300
/*----------
MEMORY.C
用户对固定内存直接读写的表演程序
----------*/
#includewindows.hgt
#includememory.h
#includedos.hgt
intPASCALWinMain(HANDLE,HANDLE,LPSTR,int)
longFARPASCALWndProc(HWND,UINT,UINT,LONG)
/*----WinMain()----*/
intPASCALWinMain(HANDLEhInstance,HANDLEhPrevInstance
,LPSTRlpszCmdLine,intnCmdShow)
{
MSG
msg
HWNDhWnd
WNDCLASSwndclass
if(!hPrevInstance)
{
wndc
您可能关注的文档
- 太浦河泵站计算机监控系统_计算机论文.doc
- 太白山野生观赏树木资源多样性的研究_工程建筑论文.doc
- 太阳能发电应用的调研_电子机械论文.doc
- 太阳能建筑节能省地型住宅建设的重要途径_工程建筑论文.doc
- 太阳能的综合利用_工程建筑论文.doc
- 太阳辐射下建筑外微气候的实验研究--建筑外表面温度分布及气流特征_工程建筑论文.doc
- 太阳辐射对不同建筑群产生温升效果的探讨_工程建筑论文.doc
- 夯扩桩施工技术分析与应用_工程建筑论文.doc
- 夹层玻璃幕墙计算与新型夹层玻璃幕墙 _工程建筑论文.doc
- 套管法成桩原理及其技术进展研究_工程建筑论文.doc
- 实现基于Spring框架应用的权限控制系统_计算机论文.doc
- 实现桌面地理信息系统ArcView和VB5应用程序之间的通讯_计算机论文.doc
- 实践报告——建筑节能_工程建筑论文.doc
- 客厅的设计与布置_工程建筑论文.doc
- 客户关系管理与数据挖掘技术综述_计算机论文.doc
- 客运专线悬灌连续梁跨越既有道路安全防护方案_工程建筑论文.doc
- 宣武门地铁车站群洞施工技术及沉降分析_工程建筑论文.doc
- 室内室内室内关于地板供暖住宅室内热湿环境及居住者舒适性的实测调查--采暖期前后的比较_工程建筑论文.doc
- 室内污染物换气过程的数值模拟_工程建筑论文.doc
- 室内环境污染的控制与监督 _工程建筑论文.doc
文档评论(0)