中断变量初始化

时间:2017-07-10 21:30:50

标签: c interrupt-handling

我跟随James Molloy的指南创建小型操作系统,现在我坚持中断。我真的不明白如何调用我的中断处理程序而不是这个命令:

    asm volatile("int $0x21");

主文件

    #include "monitor.h"
    #include "multiboot.h"
    #include "descriptor_tables.h"
    #include "timer.h"
    #include "paging.h"
    #include "simple.h"

    int main(struct multiboot *mboot_ptr){
     // Initialise all the ISRs and segmentation
        init_descriptor_tables();
     // Initialise the screen (by clearing it)
        monitor_clear();
        monitor_write("Hello, paging world!\n");          
        init_simple();
        asm volatile("int $0x21");
        return 0;
    }

其中0x21是向量中的中断号。是否有使用 c 命令进行中断的方法?

例如,我想使用此命令:

    char c; // for interrupt created and handler allocate memory for char/int etc.
    char c = 'a'; // allocate + assing 
    c; // get value
    c = 'b'; // assing new value

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

中断由CPU本身生成。

虽然C通常用于在内核中编写中断处理程序,但没有唯一的工具(或机器模型)使用它来指示它们的创建。