免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2401 | 回复: 9
打印 上一主题 下一主题

请问:访问外设中内存的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-13 11:12 |只看该作者 |倒序浏览
我在访问显卡中的内存时,可以直接访问,不需要通过显卡中的端口,
而在访问系统CMOS中的内存时,则需要通过CMOS中的端口了,可我在看
王爽的《汇编语言》时,他说可以将各类外设的存贮器看作一个逻辑存贮
器,请问:为什么我在访问显卡中的内存可以直接访问(相当于看作一个
逻辑存贮器),而在访问CMOS时则不行?
另外:能否告诉我各类外设存贮器的逻辑存贮器地址呢?(我现在只知道显卡的内存地址)

论坛徽章:
0
2 [报告]
发表于 2010-10-13 12:16 |只看该作者
x86惹的祸啊。
当年要是不分什么i/o寻址和mem寻址就没这么多事了...

论坛徽章:
0
3 [报告]
发表于 2010-10-13 16:59 |只看该作者
回复 2# snail_314


    x86是不是两种都用到呢?

论坛徽章:
0
4 [报告]
发表于 2010-10-13 17:15 |只看该作者
回复 3# netdoger


    yes.其他arch都只有一种地址空间。这个问题在cu论坛上讨论过很多遍了,用i/o指令(in, out)寻址的空间是i/o空间;用mem指令(mov等等)寻址的空间是mem空间。而一个设备到底要映射到i/o空间还是mem空间取决于设备本身。其他arch一般都只有一个mem空间,所以你在arm, mips等上面也找不到in, out类似的指令。

论坛徽章:
0
5 [报告]
发表于 2010-10-13 19:12 |只看该作者
回复  netdoger


    yes.其他arch都只有一种地址空间。这个问题在cu论坛上讨论过很多遍了,用i/o指令 ...
snail_314 发表于 2010-10-13 17:15



    即使是用I/O寻址,外设的内存是不是也是统一编址的?(因为我看王爽的《汇编语言》时,
他说可以将各类外设的存贮器看作一个逻辑存贮器)

论坛徽章:
0
6 [报告]
发表于 2010-10-13 19:48 |只看该作者
回复 5# netdoger


    举例
没看懂你问的什么意思

论坛徽章:
0
7 [报告]
发表于 2010-10-13 19:49 |只看该作者
I.O的统一编址。

MEM 的和物理内存一起编址

论坛徽章:
0
8 [报告]
发表于 2010-10-13 20:08 |只看该作者
回复 6# snail_314


    比如说显存就是在b8000处,那其他的呢?比如CMOS,我看到是通过I/O端口来访问的它的存贮器的,我想问:
显存是与主贮统一编址,而CMOS中的存贮器呢?

论坛徽章:
0
9 [报告]
发表于 2010-10-13 22:13 |只看该作者
回复 8# netdoger


    cmos中的存储器没有像显存一样在memory寻址空间统一编制。
这个问题甚至应该回答为:cmos的存储器根本都没有连在bus上,自然不需要编址了(编址是给cpu看的)。出现在bus上的,只有cmos控制器的寄存器,并且是编址在i/o空间。
当然,cmos控制器自己知道怎么访问cmos存储器的,即cmos存储器是cmos控制器私有的,而cpu要访问cmos存储器的话,通过访问cmos控制器即可。

nvram driver应该就是访问cmos控制器的。你读读它的源码吧

论坛徽章:
0
10 [报告]
发表于 2010-10-13 22:49 |只看该作者
回复 9# snail_314


    谢谢,明白了很多。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP