如果 JMP 指令在 NASM 中失败,运行代码?
我正在写一个引导加载程序,正在考虑如何跳转到内核。我看到人们使用jmp 0x8000(或内核所在的任何地址)来加载它。但是如果 JMP 由于某种原因失败(…
无法将 'idt_entry_t (*)[256] 转换为 u8int*
我正在尝试做 memset(&idt_entries, 0, sizeof(idt_entry_t)*256); 这会产生 错误:无法将参数“1”的“idt_entry_t (*)[256] {aka idt_entry_struct …
为“gdt_flush”指定的存储类别
我正在编写一个需要与一些外部汇编器函数交互的操作系统。我将声明放在标题中: namespace Kernel { class DescriptorTables { public: void init(); …
x86 cr3 和 linux swqpper_pg_dir
在 Linux 源代码(版本 2.6.18)中: movl $swapper_pg_dir-__PAGE_OFFSET,%eax movl %eax,%cr3 movl %cr0,%eax orl $0x80000000,%eax movl %eax,%cr0…
我需要 GDT 来构建 IDT 吗?
我正在开发 Atom-32 位板(AT&T 组装),该板上还没有软件。 我是否需要构建 GDT 才能构建/使用 IDT ? 这个想法只是将 ISR 与 APIC 定时器结合使用。…
确认 ATA/IDE 中断的正确方法是什么?
我目前正在开发一个业余爱好操作系统,特别是 ATA 驱动程序。我在使用带中断的 PIO 数据输入命令时遇到一些问题。我正在尝试执行 READ MULTIPLE 命令…
C++ 中的静态构造函数在我自己的操作系统内核上
我正在尝试用 C++ 编写内核,并且我是操作系统开发的初学者。现在我正在实现 cout 以在监视器上显示,但我遇到了一些问题。我知道我问的问题很愚蠢,…
使用ngen.exe编译内核
据我所知,Cosmos 和 SharpOS 已经制作了自己的编译器来从 C# 构建二进制代码,但是您可以使用 Microsoft 的 .NET AOT 来做同样的事情吗?也就是说,…