Chinaunix

标题: Linux下如何调用bios中断 [打印本页]

作者: shitou254    时间: 2011-11-08 17:50
标题: Linux下如何调用bios中断
我是说用c,
看到下边的汇编代码。想改成用c的。 需要调用bios中断。

  1. .code16
  2. .section .data
  3. msg:
  4.         .ascii "Hello World!"
  5. .section .text
  6. .globl        _start
  7. _start:
  8.         mov        %cs, %ax
  9.         mov        %ax, %ds
  10.         mov        %ax, %es
  11.         mov        $msg, %ax
  12.         mov        %ax, %bp
  13.         mov        $12, %cx
  14.         mov        $0x1301, %ax
  15.         mov        $0x000c, %bx
  16.         movb        $0x00, %dl
  17.         int        $0x10
  18. idle:
  19.         jmp        idle
复制代码

作者: cjaizss    时间: 2011-11-08 20:05
……不要把linux当成和DOS一样的bootloader
作者: shitou254    时间: 2011-11-09 10:01
就是想用gcc编译调用bios中断的c程序。 难道这不能吗?
作者: 狗蛋    时间: 2011-11-09 10:20
……不要把linux当成和DOS一样的bootloader
cjaizss 发表于 2011-11-08 20:05



    bootloader经典
作者: astezheng    时间: 2011-11-09 10:22
这个关键要看你所调用的bios中断是否支持保护模式下调用。如果是实模式下的中断的话,那是没有办法调用的,因为寻址方式都不一样,而且那些实模式中断在不在内存中还是问题呢。
但是确实存在保护模式下可以调用的bios代码,例如电源管理的一些bios服务,就可以在保护模式下调用。
作者: 方兆国    时间: 2011-11-09 12:46
回复 1# shitou254


    在C语言里插入汇编代码貌似可以




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2