. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->端口
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  P255页,印刷错误  [待解决] 回复[ 6次 ]   点击[ 759次 ]  
philmei
[帖 主]   [ 发表时间:2007-12-17 23:02 ]   [引用]   [回复]   [ top ] 
荣誉值:7
信誉值:10
注册日期:2007-11-26 03:32
P255页中,大黑字“注意”中
----------------------------------------
原文:
对256~65535的端口进行读写时,端口号放在dx中:
mov dx,3f8h     ;将端口号3f8h送入dx
in al,dx        ;从3f8h端口读入一个字节
out dx,al       ;向3f8h端口写入一个字节
----------------------------------------
看当页大黑字“注意”中的最后一句话:
“访问8位端口时用al,访问16位端口时用ax。”

因此我推断:3f8h是16位端口,应该用ax
----------------------------------------
应改为:
对256~65535的端口进行读写时,端口号放在dx中:
mov dx,3f8h     ;将端口号3f8h送入dx
in ax,dx        ;从3f8h端口读入一个字节
out dx,ax       ;向3f8h端口写入一个字节
----------------------------------------
huibian
[第1楼]   [ 回复时间:2007-12-19 11:22 ]   [引用]   [回复]   [ top ] 
荣誉值:117
信誉值:2
注册日期:2007-09-04 10:41
3f8h是端口号,用十六位存放,但不能说明这个端口就是十六位的。

3f8h端口是读入、写入一个字节,所以应该用al,而不是ax.
taotling
[第2楼]   [ 回复时间:2008-03-06 02:08 ]   [引用]   [回复]   [ top ] 
荣誉值:53
信誉值:0
注册日期:2008-02-09 02:55
楼上正解。
shifuzhuang
[第3楼]   [ 回复时间:2008-08-28 12:07 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-09 11:14
看当页大黑字“注意”中的最后一句话: 
“访问8位端口时用al,访问16位端口时用ax。”   是不是 把ax改为dx
debugk
[第4楼]   [ 回复时间:2008-09-03 21:02 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-13 10:30
3f8h是端口号,用十六位存放,但不能说明这个端口就是十六位的。

3f8h端口是读入、写入一个字节,所以应该用al,而不是ax.
------------------
回复:那么什么样的端口是8位的,什么样的端口又是16位的呢?
mouse
[第5楼]   [ 回复时间:2008-09-04 10:03 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
那么什么样的端口是8位的,什么样的端口又是16位的呢?
-------------
这个都是死的,只要学会了怎么读取端口,具体用什么端口的时候查手册就ok了。楼主又兴趣的话可以去网上查查。
programmer
[第6楼]   [ 回复时间:2008-10-05 15:09 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2008-09-10 20:50
"访问8位端口时用al,访问16位端口时用ax"中的al和ax是存放从端口读入的数据或要发送到端口中的数据,
而dx中只是存放着端口号而已。
端口和端口中的数据是不一样的,我想楼主在这里搞混了!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved