然后是 在 汇编中 再调用C函数 进行实现。
这里面的 C语言又调用了 另一个函数, 继续实现这个函数。
然后就是 编译 + 测试了。
测试 是可以的。
接下来就是 中断中关于 寄存器的保护。
像这种 出错的异常 是不需要保存寄存器的。
但是 像一些 用于通知的异常 就需要 保护寄存器了。
所以 由于硬件 保存的 eflags , cs ,ip , 所以 手动的话, 只保存其他的寄存器就可以了。
代码中的实现如下:
pusha 保存的是通用的寄存器。
然后他没有保存 ss 段寄存器,这里不清楚为什么?
然后使用 adb 查看一下 内存的栈。
是正常的。