. : : 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