有没有办法在没有蓝屏的 x64 Vista SP2 (AMD64) 上保存\加载中断描述符表?这是我在 MASM 中制作蓝屏的代码:
IDTINFO struct
word idtLimit ?
dword lowIDTBase ?
dword highIDTBase ?
IDTINFO ends
getInterruptDescriptorTable proto :DWORD
.code
getInterruptDescriptorTable PROC idtInfo_arg:DWORD
local idtInfo_locl :IDTINFO
sidt idtInfo_locl
lea eax, idtInfo_locl
push [eax]
mov eax, idtInfo_arg
pop [eax]
getInterruptDescriptorTable endp
end
好吧,我是汇编语言的新手,所以可能会有一些明显的错误。
编辑这是 .h 文件中的原型的样子:
extern void getInterruptDescriptorTable(IDTINFO*);
在这里,调用 .c 文件:
IDTINFO idtInfo = {0};
getInterruptDescriptorTable(&idtInfo);
C中的IDTINFO结构:
typedef struct
{
unsigned short idtLimit;
unsigned int lowIDTBase;
unsigned int highIDTBase;
} IDTINFO;