Kernel 无效操作码错误(int 0x06)

Kernel 无效操作码错误(int 0x06),kernel,Kernel,当我从位于不同*.C文件中的main.C调用C函数时,会引发运行时异常。我捕获中断6(无效操作码)。我不明白。gcc没有给出错误。我检查了很多次功能,但没有发现任何错误。因为我正在研究内核开发,所以机器上没有操作系统。多谢各位 编辑:我注意到按位运算符不接受变量作为右侧表达式。当我使用一个值而不是off变量时,它会起作用。我该怎么办 uint8_t off = OFFSET_FROM_BIT(frame); frames[idx] |= (0x00000001 << off); u

当我从位于不同*.C文件中的main.C调用C函数时,会引发运行时异常。我捕获中断6(无效操作码)。我不明白。gcc没有给出错误。我检查了很多次功能,但没有发现任何错误。因为我正在研究内核开发,所以机器上没有操作系统。多谢各位

编辑:我注意到按位运算符不接受变量作为右侧表达式。当我使用一个值而不是
off
变量时,它会起作用。我该怎么办

uint8_t off = OFFSET_FROM_BIT(frame);
frames[idx] |= (0x00000001 << off);
uint8\u t off=与位(帧)的偏移量;

帧[idx]|=(0x00000001引发此例外是因为我的bootsec.bin错误地加载了内核。它只加载了kernel.bin的15个扇区。但是,在添加最后一个*.c文件时,kernel.bin变成了30个扇区。

从我的角度看,我也没有看到任何错误。如果你想得到答案,你必须提供更多的信息。谢谢。什么你需要什么样的信息?