中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-31 17:25
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行
DOS开发编程 & 发展交流 (开发室) » 请问在DOS下怎样访问32位的地址空间
可打印版本  1,513 / 12
第1楼 luyd 发表于 2003-04-28 00:00
初级用户 发帖 2 积分 109
请问在DOS下怎样访问32位的地址空间
不弟我最近做一个PCI卡,BIOS把它映射到Baseaddress为40400000的空间
请问在DOS下我怎样才能访问(读写)到这块内存啊,我用的用BC31,我该怎么做,大侠救命!
第2楼 如是大师 发表于 2003-04-28 00:00
元老会员 发帖 3,351 积分 9,654 来自 湖北
不太懂,看wengier吧,帮你顶一下。
第3楼 Wengier 发表于 2003-04-29 00:00
系统支持 发帖 10,521 积分 27,736
这个嘛,最好用汇编寻址,用BC可能不太方便,不过我也没用过。
第4楼 Dark-Destroy 发表于 2003-04-29 00:00
元老会员 发帖 3,551 积分 8,312
問一下,汇编是指什麼??
第5楼 luyd 发表于 2003-04-29 00:00
初级用户 发帖 2 积分 109
多谢各位前辈,请快快教我几招,我都快急疯了。
第6楼 ATLaS 发表于 2003-07-09 00:00
初级用户 发帖 29 积分 169
real mode下是无法访问该地址空间的。bc31下好像应该也有一个32-bit dpmi host或类似的东西,从而使程序运行在32-bit保护模式下,这样内存地址的映射就是flat模式的。直接定义一个far指针,指向该地址,就可以访问了。在watcom c+dos4g/w下做过,但bc下就不清楚了。
第7楼 Dark-Destroy 发表于 2003-07-10 00:00
元老会员 发帖 3,551 积分 8,312
用djgpp也可以呢~
djgpp有cwsdpmi呢~
第8楼 feng 发表于 2003-09-10 00:00
初级用户 发帖 5 积分 117
我也遇到一个一模一样的问题,不知道你的问题解决了没有,如果解决了可不可以告诉我一下,如果没解决可以切磋一下,我的邮箱是[email protected]
第9楼 ldy810 发表于 2005-10-07 22:05
新手上路 发帖 6 积分 13
你可以先关掉GATE A20,然后调用1M以少内存,不过做多也只能访问4G
第10楼 taowentao 发表于 2005-10-08 16:03
高级用户 发帖 111 积分 739 来自 辽宁沈阳
它的线性地址是40400000 >> 12 + 0000 = 40400,在1M以内,实模式完全可以访问。
第11楼 jhbin_1999 发表于 2005-10-09 22:36
初级用户 发帖 4 积分 117
我也遇到同样的问题,想和你交流一下,email:[email protected]
qq:55512153
第12楼 killiori 发表于 2005-10-15 21:20
新手上路 发帖 15 积分 15 来自 湖北襄樊
1
char far *p = (char far *) 0x40400000L
第13楼 killiori 发表于 2005-10-15 21:22
新手上路 发帖 15 积分 15 来自 湖北襄樊
1
需要加offset
sorry
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023