变量初始化中断
Interrupt for variable initialization
我正在按照 James Molloy 的指南创建小型 OS,但现在我卡在了中断状态。我真的不明白如何调用我的中断处理程序而不是这个命令:
asm volatile("int [=10=]x21");
主文件
#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 [=11=]x21");
return 0;
}
其中 0x21 是 vector.Is 中的中断号,有使用 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
有什么办法可以做到吗?
中断由CPU本身产生。
虽然 C 通常用于在内核中编写中断 处理程序 ,但没有独特的工具(或机器模型)指示使用它创建它们。
我正在按照 James Molloy 的指南创建小型 OS,但现在我卡在了中断状态。我真的不明白如何调用我的中断处理程序而不是这个命令:
asm volatile("int [=10=]x21");
主文件
#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 [=11=]x21");
return 0;
}
其中 0x21 是 vector.Is 中的中断号,有使用 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
有什么办法可以做到吗?
中断由CPU本身产生。
虽然 C 通常用于在内核中编写中断 处理程序 ,但没有独特的工具(或机器模型)指示使用它创建它们。