outport一问

bh2001zhh 2006-07-19 09:02:17
在tc中 outportb、outport、outportw对端口写只能操作8位或16位的地址,我要对20位的地址操作有没有对应的函数?是不是只能嵌入汇编啦?

谢谢!
...全文
182 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bh2001zhh 2006-07-19
  • 打赏
  • 举报
回复
是啊,我同事译码的时候把地址线选错了,谢谢大家,把分散了!
mLee79 2006-07-19
  • 打赏
  • 举报
回复
貌似 PC 的端口地址只有 16 位, 哪有什么 0xD1000 的端口地址哦...
bh2001zhh 2006-07-19
  • 打赏
  • 举报
回复
看来是没有办法了,现在不对他操作了,同事做扩展板的时候搞错了地址!
bh2001zhh 2006-07-19
  • 打赏
  • 举报
回复
我知道,但是我要操作0xD1000怎么办?
ckp 2006-07-19
  • 打赏
  • 举报
回复
20位是物理地址宽度,也就是地址线宽度,和端口宽度没有关系。
bh2001zhh 2006-07-19
  • 打赏
  • 举报
回复
具体怎么操作?
bh2001zhh 2006-07-19
  • 打赏
  • 举报
回复
我现在端口地址是0xD1000
bh2001zhh 2006-07-19
  • 打赏
  • 举报
回复
那怎么一次性写呀?
用什么函数呢?
outportw(0xD1000,0x21)假如我要这样操作怎么办?
jixingzhong 2006-07-19
  • 打赏
  • 举报
回复
自己分解 、 合成一下就可以了 ...
jixingzhong 2006-07-19
  • 打赏
  • 举报
回复
自己分解 、 合成一下就可以了 ...
jixingzhong 2006-07-19
  • 打赏
  • 举报
回复
在tc中, 采用了分段技术滴 ....
16位 段地址 和 16位偏移地址, 可以合成 20位地址,
合成规则:

段地址*16 + 偏移地址=20位绝对地址(也就是段地址左移4位后加上偏移地址)
bh2001zhh 2006-07-19
  • 打赏
  • 举报
回复
有32位的就成,我现在是想问有没有对大于16位地址操作的函数!
ckp 2006-07-19
  • 打赏
  • 举报
回复
汇编中,只有8位,16位和32位的端口操作指令,没有20位的

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧