Как стать автором
Обновить

Комментарии 7

Ах старые добрые 21h и 10h. А вот оно значит как в мипсах — в общем то похожий принцип.
Таки int-ами полон Unix(0х80) и NT/Win2k(0x2E). В виндах посвежее используется SYSENTER(долго вспоминал, как этот опкод зовется, заодно выяснил, что на AMD он и вовсе SYSCALL).
Это будни, а вот прерывания dos и bios знают не все.
У доса с биосом их сильно больше было :) Хотя эти основные, конечно же.
Старые-добрые прерывания эти в реальном режиме работали, а тут в защищённый режим да ещё и привилегированный. Но напоминает да. Ещё в Z80 (второй ассемблер, который я учил) были команды RST n (так, кажется), передающие управление на определённый адрес с шагом.
А на С mips_first_exception_handler() написать можно? В gcc есть __attribute__((interrupt)), вроде бы для MIPS (в том числе).
На сколько я понимаю, нет. mips_first_exception_handler это такой длинный jump. Возможно, Вы правы, что можно было бы использовать атрибут: с __attribute__((interrupt)) на mips_c_syscall_handler получится обойтись без mips_second_exception_handler (точнее, аналогичный ему код подтянется из компилятора).

Я обычно предпочитаю не использовать этот атрибут, получается более прозрачно (и переносимо).
Зарегистрируйтесь на Хабре , чтобы оставить комментарий