使用带有gcc的内联汇编时启用从实模式切换到保护模式时出错

时间:2017-07-27 06:12:43

标签: c gcc assembly inline inline-assembly

使用C编写脚本并使用内联汇编时出现以下错误:
我用我常用的设置编译:

gcc -m32 -ffreestanding -c kernel.c -o kc.o

我从gcc得到了这个错误:

junk `8h:PModeMain' after expression

我使用的代码是适用于gcc规则的osdev.org代码,如下:

void k_enter_protected_mode()
{
    __asm__ volatile ("cli;"          
        "lgdt (gdtr);"  
        "mov %eax, cr0;" 
        "or %al, 1;"    
        "mov cr0, %eax;" 
        "jmp 08h:PModeMain;"
        "PModeMain:");
}

该代码旨在将表单实模式交换为保护模式,提前感谢!

0 个答案:

没有答案