我正在創建一個小例程,用lidt
指令加載idtr
寄存器。 我創造了這個代碼 -錯誤:操作碼和操作數的組合無效 - nasm
global load_idt
load_idt:
mov eax, esp
add eax, 4
lidt eax ;<-----------------LINE 9
ret
但是,當我編譯這個使用NASM,我得到一個錯誤 -
kernel/kernel_start.asm:9: error: invalid combination of opcode and operands
我的編譯命令是 -
nasm kernel/kernel_start.asm -f elf32 -o kernel/kernel_start.o
任何人都可以指出這個程序中的錯誤?
助記符是'LIDT m16&32' ...你的意思是'lidt [eax]'? – Tommylee2k
我想用'load_idt()'調用C中的函數'。我必須使用'[eax]'嗎?它不是指向idtr的價值而不是它的地址? @ Tommylee2k –