我跟随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
有没有办法做到这一点?
答案 0 :(得分:0)
中断由CPU本身生成。
虽然C通常用于在内核中编写中断处理程序,但没有唯一的工具(或机器模型)使用它来指示它们的创建。