为了账号安全,请及时绑定邮箱和手机立即绑定

您好,请问inport、outport等函数的端口地址参数如何确定?

您好,请问inport、outport等函数的端口地址参数如何确定?

森栏 2021-10-13 15:11:05
看到有些代码使用inportb、outportb函数,其中portid这个参数直接使用了16进制地址(并且在注释中指明这个地址是计时器或扬声器什么的),那请问这个端口地址是如何确定的?直接这样使用……难道所有的计算机都是这个值?制定了标准端口地址?硬件决定的?那如何自己查询每个端口地址?难道都得查那个什么表?那表是怎么出来的?windows中“附件”“系统信息”查到的值太笼统。小白第一次接触,要是问得有些幼稚,还请各位高手包涵~
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

题目中,提到了windows,看来楼主所说的计算机,是常用的PC机。
PC机,是80年代初期由 IBM 公司开发的硬件系统,微软开发的软件系统。
PC机内部的端口地址,都是 IBM 公司设计的,并向外公开了这些数据(就是楼主说的什么表)。
此后,其它公司相继开发了自己品牌的PC机,其中的端口地址,都和 IBM 的相同,这就叫“兼容”机。
目前,常见的各个品牌的兼容 PC 机,其端口地址都是兼容 IBM 的。
如果这些技术数据,和 IBM 设计的不同,就不是兼容机。

查看完整回答
反对 回复 2021-10-17
?
一只名叫tom的猫

TA贡献1906条经验 获得超2个赞

看具体情况了。
比如串口,汇编中可以直接使用sbuf,计算机上地址一般都是0x3F8或0x2F8,这些都是有规定的,就是你说的所谓的表。
表是人为规定的,大家都按照这个标准做就可以了。
做的多了,自然就记住了。

查看完整回答
反对 回复 2021-10-17
?
呼唤远方

TA贡献1856条经验 获得超11个赞

inportb、outportb这两个函数只能在dos下用,windows nt下不允许直接访问端口的。
在dos下很多端口都是标准的,是确定的,可以直接用。操作之前你必须事先知道硬件的端口地址。

查看完整回答
反对 回复 2021-10-17
  • 3 回答
  • 0 关注
  • 443 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信