может кто-то объяснить разницу между командой сборки int $0x00
и выполнить фактическое деление на ноль. У меня есть точка останова на обработчике divide_error() в ядре, связанная с 0-й записью в IDT (ошибка разделения).
Когда я делаю это в своей программе на C:
int i = 5/0;
то я попал в точку останова (как и ожидалось). Тем не менее,
asm volatile ("int $0x00")
не запускает обработчик. Почему?