网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
Windows 95/98下直接访问物理内存
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
nbsp;   if ( 0xFFFF == limit )
    if ( BASE_DESIRED == base ) {
    // BASE_DESIRED为内存段对应的基地址
    wSelector = sel;
    break; }}}
直接访问物理内存的实现
得到了段选择符之后,即可把该段选择符置于相应的段寄存器中( 不能用CS,DS),
用该寄存器进行数据访问。需注意的是,任何非法段选择符写入段寄存器将会导
致通用保护错误(General Protection Faul t)。
下面的代码实现物理内存的读/写操作(段选择符用上述方法得到):



void WriteMemory(WORD sel, DWORD dwOffset, const char * str, UINT length)
{
    char cWrite;
    for ( UINT i = 0; i < length; i ++ )
    {
     cWrite = str [i];
     _asm {     push es     mov ax, sel     mov es, ax
    mov ebx, dwOffset     mov al, cWrite     mov byte ptr es:[ebx], al
    inc dwOffset     pop es
          }
    }
}


void ReadMemory ( WORD sel, DWORD dwOffset,char * str, UINT length )
{
    char cRead;
    for ( UINT i = 0; i < length; i ++ ) {
    _asm {
        push es
        mov ax, sel
        mov es, ax
        mov ebx, dwOffset
        mov al, byte ptres:[ebx]
        mov cRead, al
        inc dwOffset
        pop es
    }
      str [i] = cRead;
    }
}
    本文所用操作系统为中文Windows 95 OSR 2.0以及中文Windows
98,编程环境为Vis ual C++ 5.0。

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号