. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->端口
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于内存和端口没人注意到的问题  [待解决] 回复[ 5次 ]   点击[ 563次 ]  
ztf770710
[帖 主]   [ 发表时间:2013-03-04 20:25 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2008-01-16 11:01
在第1章中,将内存地址A0000-BFFFF空间划为显存地址空间,在第9章的实验9中,使用mov等指令可以在此空间操作,完成屏幕显示,进一步坐实了此段空间确实为CPU可以使用mov、push等指令的内存地址空间。
   但在14章中,显卡被归为接口卡,其与CPU通讯使用只能使用2条指令:in和out。而且从第1章所画的图看,显存显然在显卡上,控制显存应该通过端口。这样就和前面的第1章和第9章想矛盾。
   为什么呢?谁有权威解释?是所谓的内存映射吗?如果是,请大侠详细解释一下。
   另外,第14章检测点14.2,不用考虑进位或溢出吗?ax不能大于1999h。
ztf770710
[第1楼]   [ 回复时间:2013-03-10 16:23 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2008-01-16 11:01
问题发了这么久,没一个人回答。顶的人都没有,可能都知道吧。还好我也艰难的基本搞清了。结束此贴。
690847519
[第2楼]   [ 回复时间:2013-03-11 10:14 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-03-11 09:56
完全不明白啊,A0000-BFFFF空间划为显存地址空间相当于隔离区,不会再里面写mov这类的,把数放进去代表一个点颜色,至于端口我确实不知道,mov al,10,代表什么,为什么是10,更本不知道,所以看了下。不是啊,你能在屏幕上显示吗,只能在CMD里面显示啊
ztf770710
[第3楼]   [ 回复时间:2013-03-17 14:19 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:2
注册日期:2008-01-16 11:01
自己的问题自己回答,造福新学者:
1、PC机中,I/o端口分为独立编址和统一编址两种。独立编址如书中15章所述;统一编址是把外设端口当作存储单元对待,也就是让外设端口地址占用部分存储器单元地址,操作和内存一样。
2、IBM PC及其兼容机主要使用独立编址方式;另外,IBM PC也部分地使用了统一编址方式。例如,CGA显示卡上显示内存的地址就直接占用了存储器地址空间0xB800~0xBC00范围。
3、综合以上2条可以看出,大部分外设都是使用in/out指令;CGA显示卡可以使用mov等内存指令,是因为它的端口编址方式是和内存一起编址,相当于内存一部分。
4、所以,我们平时说集成显卡占用内存,就是这个原因。而独立显卡不占用内存,其访问用in/out指令。
linyu0723
[第4楼]   [ 回复时间:2013-06-21 18:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-06-07 21:54
那说明你对端口还没有掌握。A0000-BFFFF空间为显卡存储器空间,而IN OUT只是对显卡端口操作,两码事。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved