Есть ли способ сохранить \ загружать таблицу дескрипторов прерываний на x64 Vista SP2 (AMD64) без синего экрана? Вот мой код в MASM, что делает Синий экран:(Asm C Drivers) Таблица дескрипторов прерываний на x64 Vista
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
Ну, я новичок на ассемблере, поэтому могут быть некоторые очевидные ошибки.
EDIT Это как прототип в .h файле выглядит следующим образом:
extern void getInterruptDescriptorTable(IDTINFO*);
Здесь заехать в .c файле:
IDTINFO idtInfo = {0};
getInterruptDescriptorTable(&idtInfo);
IDTINFO структуры в C:
typedef struct
{
unsigned short idtLimit;
unsigned int lowIDTBase;
unsigned int highIDTBase;
} IDTINFO;
также не должно быть «ret» в конце процедуры? – PhiS