我正在尝试开发自己的基本内核用于教育目的。我正在阅读英特尔80386并阅读有关中断0: - 除零异常。
在那里,写着: -
保存的指令指针 保存的CS和EIP寄存器的内容指向生成异常的指令。
我的问题是这些寄存器保存在哪里。我怎样才能访问这些寄存器?
答案 0 :(得分:3)
中断在堆栈上按下EFLAGS,CS和EIP寄存器的当前内容(按此顺序)。对于某些例外情况,CPU在EIP之后推送错误代码,而不是在除以零之外。
如果你开发自己的内核,你应该真正了解Intel Software Developer Manual。有一章关于中断和异常(实际版本中的6.4),这包括完整描述推送时的内容。