|
@@ -0,0 +1,21 @@
|
|
|
+# Interrupt handling
|
|
|
+
|
|
|
+When an interrupt is raised, the x86 cpu will
|
|
|
+push some of the current working states into
|
|
|
+current user stack. (At least for GE ints) in
|
|
|
+the following order:
|
|
|
+
|
|
|
+push (EFLAGS)
|
|
|
+push %cs
|
|
|
+pushl %eip
|
|
|
+push (ERROR_CODE)
|
|
|
+
|
|
|
+The eip should points to the instruction that
|
|
|
+caused the exception.
|
|
|
+
|
|
|
+ERROR_CODE can be segment selector index (if
|
|
|
+the exception is segment related) or simply
|
|
|
+zero
|
|
|
+
|
|
|
+Notice that the error code doesn't always
|
|
|
+exists. In some cases, it can be absent.
|