dzjhnld
驱动老牛
驱动老牛
  • 注册日期2002-09-30
  • 最后登录2002-11-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1841回复:24

有谁懂这个呀!?

楼主#
更多 发布于:2002-10-31 09:38
谁能介绍怎样给地址进行初始化的书!
能详细说说下面程序给基地址进行初始化的含义吗?如:
_outp(address,OxO3);
_outp(address+1,Ox34);
_outp(address,OxO0);
_outp(address+1,OxO0);
_outp(address+1,OxO0);
其中的address和address+1有什么不同的意思呢?
谢谢了!

天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉 罪过罪过!!
dzjhnld
驱动老牛
驱动老牛
  • 注册日期2002-09-30
  • 最后登录2002-11-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-31 17:09
[quote]晕
从凌晨关到早上,厉害!佩服!

????????????? [/quote]
终于有不懂的了吧!
我也????????
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉 罪过罪过!!
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2002-10-31 17:07

从凌晨关到早上,厉害!佩服!

?????????????
rudolf
驱动小牛
驱动小牛
  • 注册日期2002-10-09
  • 最后登录2006-04-25
  • 粉丝0
  • 关注0
  • 积分81分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-31 16:35

从凌晨关到早上,厉害!佩服!
靠天靠地靠父母,不如靠自己。
dzjhnld
驱动老牛
驱动老牛
  • 注册日期2002-09-30
  • 最后登录2002-11-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-31 15:44
先谢谢各位了! :)
我现在已经明白了 ;)
放分吧! :D
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉 罪过罪过!!
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
5楼#
发布于:2002-10-31 15:36
哦,记起来了,你去找一段读写CMOS的程序看看,都是这样子的
char cmos[256];

for( int i=0; i<256; i++ ) {
   outp( 0x70, i );
  cmos = inp( 0x71 );
}
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
6楼#
发布于:2002-10-31 15:34
大概十年前我在DOS下对显卡编程的时候碰到过,就是index/data的意思嘛,要说是地址,除非outp解释为内存地址,否则就是端口地址。
dzjhnld
驱动老牛
驱动老牛
  • 注册日期2002-09-30
  • 最后登录2002-11-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-31 14:20


对,这得要看硬件是怎么设计.
这段代码就是index register和data register的意思,否则没有意义.我碰到过这样设计register的芯片,一般应该是显示芯片才会这么做.

 [/quote]
那你能告诉我介绍这方面的书吗?!谢谢了先!
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉 罪过罪过!!
more
驱动中牛
驱动中牛
  • 注册日期2001-06-30
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-31 13:23
[quote]有人告诉我是这样的:
address一般是index register即索引寄存器,而address+1是data register即数据寄存器。在很多硬件结构中为节省I/O空间使用这种 index/data组合的办法。比如一共有256个I/O寄存器,但不想真正的占用系统256个I/O地址,就可以使用两个8位的I/O寄存器的办法,其中一个用做索引值,另一个用做数据操作。如要读第30H个I/O寄存器的值就可以这样:
_outp(address,0x30)
val=_inp(address+1)
同样要对第3个I/O寄存器写则:
_outp(address,0x03)
_outp(address,val)
站长,你能介绍相关的书吗? :)


那要看硬件是怎么设计的,你得具体到硬件。
反正还是 heshen 说的意思。 [/quote]

对,这得要看硬件是怎么设计.
这段代码就是index register和data register的意思,否则没有意义.我碰到过这样设计register的芯片,一般应该是显示芯片才会这么做.

wavelight
驱动老牛
驱动老牛
  • 注册日期2002-08-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-10-31 12:45
不太懂!! :(
兄弟,帮你了你!  :( :)
<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我cool 故我在!<br></b></font></table> [img]http://www.driverdevelop.com/forum/upload/wavelight/2002-12-13_1.gif[/img]<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我在 故我cool!<br></b></font></table>
cn18799
驱动老牛
驱动老牛
  • 注册日期2001-11-17
  • 最后登录2010-04-16
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望36点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-10-31 12:32
有人告诉我是这样的:
address一般是index register即索引寄存器,而address+1是data register即数据寄存器。在很多硬件结构中为节省I/O空间使用这种 index/data组合的办法。比如一共有256个I/O寄存器,但不想真正的占用系统256个I/O地址,就可以使用两个8位的I/O寄存器的办法,其中一个用做索引值,另一个用做数据操作。如要读第30H个I/O寄存器的值就可以这样:
_outp(address,0x30)
val=_inp(address+1)
同样要对第3个I/O寄存器写则:
_outp(address,0x03)
_outp(address,val)
站长,你能介绍相关的书吗? :)


那要看硬件是怎么设计的,你得具体到硬件。
反正还是 heshen 说的意思。
[img]http://www.danasoft.com/vipersig.jpg[/img] [img]http://www.driverdevelop.com/forum/upload/cn18799/2002-09-28_logo.gif[/img]
dzjhnld
驱动老牛
驱动老牛
  • 注册日期2002-09-30
  • 最后登录2002-11-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-10-31 10:46
花猫来说话呀! :(
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉 罪过罪过!!
dzjhnld
驱动老牛
驱动老牛
  • 注册日期2002-09-30
  • 最后登录2002-11-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-10-31 10:28
[quote]有人告诉我是这样的:
address一般是index register即索引寄存器,而address+1是data register即数据寄存器。在很多硬件结构中为节省I/O空间使用这种 index/data组合的办法。比如一共有256个I/O寄存器,但不想真正的占用系统256个I/O地址,就可以使用两个8位的I/O寄存器的办法,其中一个用做索引值,另一个用做数据操作。如要读第30H个I/O寄存器的值就可以这样:
_outp(address,0x30)
val=_inp(address+1)
同样要对第3个I/O寄存器写则:
_outp(address,0x03)
_outp(address,val)
站长,你能介绍相关的书吗? :)

但不总是那样的,合身他们说得没错 [/quote]
有没这么复杂,花猫!那你肯定懂得更多咯,介绍介绍吧: :)――
――书也行呀!
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉 罪过罪过!!
heshen
驱动老牛
驱动老牛
  • 注册日期2002-04-19
  • 最后登录2014-01-26
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-10-31 10:25
[quote]有人告诉我是这样的:
address一般是index register即索引寄存器,而address+1是data register即数据寄存器。在很多硬件结构中为节省I/O空间使用这种 index/data组合的办法。比如一共有256个I/O寄存器,但不想真正的占用系统256个I/O地址,就可以使用两个8位的I/O寄存器的办法,其中一个用做索引值,另一个用做数据操作。如要读第30H个I/O寄存器的值就可以这样:
_outp(address,0x30)
val=_inp(address+1)
同样要对第3个I/O寄存器写则:
_outp(address,0x03)
_outp(address,val)
站长,你能介绍相关的书吗? :)

但不总是那样的,合身他们说得没错 [/quote] :D :D
不要啊!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-10-31 10:24
有人告诉我是这样的:
address一般是index register即索引寄存器,而address+1是data register即数据寄存器。在很多硬件结构中为节省I/O空间使用这种 index/data组合的办法。比如一共有256个I/O寄存器,但不想真正的占用系统256个I/O地址,就可以使用两个8位的I/O寄存器的办法,其中一个用做索引值,另一个用做数据操作。如要读第30H个I/O寄存器的值就可以这样:
_outp(address,0x30)
val=_inp(address+1)
同样要对第3个I/O寄存器写则:
_outp(address,0x03)
_outp(address,val)
站长,你能介绍相关的书吗? :)

但不总是那样的,合身他们说得没错
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
dzjhnld
驱动老牛
驱动老牛
  • 注册日期2002-09-30
  • 最后登录2002-11-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-10-31 10:22
找本80386的汇编教材就有呀.....

我想要找专门介绍怎样给地址初始化的书――最好有例子的 :) :)
谢谢了!
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉 罪过罪过!!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
16楼#
发布于:2002-10-31 10:18
找本80386的汇编教材就有呀.....
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
dzjhnld
驱动老牛
驱动老牛
  • 注册日期2002-09-30
  • 最后登录2002-11-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-10-31 10:16
有人告诉我是这样的:
address一般是index register即索引寄存器,而address+1是data register即数据寄存器。在很多硬件结构中为节省I/O空间使用这种 index/data组合的办法。比如一共有256个I/O寄存器,但不想真正的占用系统256个I/O地址,就可以使用两个8位的I/O寄存器的办法,其中一个用做索引值,另一个用做数据操作。如要读第30H个I/O寄存器的值就可以这样:
_outp(address,0x30)
val=_inp(address+1)
同样要对第3个I/O寄存器写则:
_outp(address,0x03)
_outp(address,val)
站长,你能介绍相关的书吗? :)
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉 罪过罪过!!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
18楼#
发布于:2002-10-31 10:13
outp是访问端口的命令呀.
一般也就是address的数字加一

http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
heshen
驱动老牛
驱动老牛
  • 注册日期2002-04-19
  • 最后登录2014-01-26
  • 粉丝0
  • 关注0
  • 积分45分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-10-31 10:11
那是指针运算呀.....
address+1指向下一个地址
可是他说错了呢
不要啊!
上一页
游客

返回顶部