я пишу 16битную ОС с мультизадачностью, реализовывал так: когда возбуждается обработчик прерывания 0х08 (irq 0), то нужно сохранить состояние машины в специальное место в памяти, и загрузить состояние следующего процесса, и так далее каждое прерывание таймера. проблема заключается в том, что я не знаю, как получить состояние машины в момент прерывания, чтобы его сохранить.
Иван Четчасов, прекрасно, остаётся выяснить, что вход в обработчик прерывания делает с этими регистрами. А это будет зависеть от того, как конкретно ты его реализовал. Например если твоя ОС 16-битная реального режима, то процессор входя в обработчик прерывания сохраняет на текущем стеке только регистр флагов и cs:ip, всё остальное ты сохраняешь (или не сохраняешь) сам в коде обработчика прерывания.
реальный режим, да, но в каком порядке он это сохраняет? нужно 17 регистров сохранить. если НЕ флаги и НЕ cs, ip и так сохраняются, то как получить первые два?