whutxuan
驱动小牛
驱动小牛
  • 注册日期2002-03-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2800回复:12

在linux下怎么调用BIOS中断????

楼主#
更多 发布于:2003-06-16 17:56
我想调用中断0x10的2号功能,直接用 int 0x10不行,怎么调用呢?
Inventec
驱动牛犊
驱动牛犊
  • 注册日期2003-04-29
  • 最后登录2005-11-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-01 11:43
不建议调用BIOS中断,它会影响你的程序兼容性,因为以后的BIOS与OS的唯一接口是 ACPI,其他的接口如PCI32,APM等都将不再存在。
真心英雄
enLinux
驱动牛犊
驱动牛犊
  • 注册日期2003-11-27
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-29 12:08
了解rm和pm,就清楚为什么不能直接调用bios,关键在于中断向量表
现在的BIOS32,为什么非要2层调用呢?为了保持兼容,花费代价太大
zhtao
驱动牛犊
驱动牛犊
  • 注册日期2003-02-07
  • 最后登录2003-10-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-04 21:00
中断执行代码没有覆盖,但是中断向量被覆盖了
jyhlc
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2005-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-24 15:12
   Linux在初始化时已经把BIOS的可执行代码覆盖掉了,所以不可能再调用BIOS中断。

覆盖了吗?怎么覆盖?执行代码在ROM中,而且Linux中对物理地址情况的了解是通过BIOS调用,怎么可能覆盖?当然,也可能是我弄错了,希望能指点在那部分代码进行覆盖的
另外:在BIOS中有一个32位的调用方法,也就是可用在保护模式的方式下进行调用,Linux 的PCI模块中,对PCI的信息读取可以采用两种方法,一种就是调用BIOS的32位调用接口,另一种是自己读取配置空间,所以我认为是可以调用 的
不过我针对你的写屏要求,我不知道你为什么要在某一个列写东西,比较奇怪,但是可以采用terminfo的方法写终端
有分吗???
zyx0122
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2004-05-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-20 13:38
    Linux在初始化时已经把BIOS的可执行代码覆盖掉了,所以不可能再调用BIOS中断。
whj523
驱动牛犊
驱动牛犊
  • 注册日期2003-02-17
  • 最后登录2006-09-15
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-20 09:41
内核中中断向量表在哪? :D
tpu
tpu
驱动牛犊
驱动牛犊
  • 注册日期2002-08-13
  • 最后登录2009-05-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-18 18:17
linux下有一个库叫lrmi的,可以调用时模式中断。具体用法见google
精益求精!
whutxuan
驱动小牛
驱动小牛
  • 注册日期2002-03-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-18 11:59
在linux下,想在屏幕上的20行,40列,打印一个\".\",用汇编怎么实现呢?
whutxuan
驱动小牛
驱动小牛
  • 注册日期2002-03-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-17 17:34
linux本身提供了那些中断呢?那里可以查到。
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-17 13:14
linux无法调用bios中断。
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-17 12:53
应该会出问题的。
bios是real mode,linux工作在protect mode。而且linux的中断向量和bios的int 10H完全不是一码事
I know nothing!
flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2003-06-17 11:21
是不是要修改系统的中断向量表(是系统的那个,不是咱们一般申请中断的那个)?在进入do_IRQ函数前要先查询这个中断向量表的
我思,故我在
游客

返回顶部