调用系统API函数的汇编代码是触发调用门还是异常
win32汇编与80x86汇编有什么区别?为什么386编程的“调用门”,“描述符”等概念都不见了?
http://topic.csdn.net/t/20021121/23/1196349.html
有如下的话:
这同时也意味着您无须和段寄存器打交道,您可以用任意的段寄存器寻址任意的地址空间,这对于程序员来说是非常方便的,这也使得用32位汇编语言和用C语言一样方便。
调用系统API函数时,win32中选择子好像是不变吧。调用系统API函数的汇编代码是触发 调用门 还是异常 还是其它了????????????
如果是触发调用门,是怎么触发的(选择子好像是不变吧)。
如果是异常的话,把API地址存放起来再由异常去调用API吗?
[解决办法]
从应用程序到系统API是段内跳转,从系统API到内核是直接完成从外层特权级变换到内层特权级,页转换是异常处理。
[解决办法]
//为什么386编程的“调用门”,“描述符”等概念都不见了
没有不见,只是一般的应用程序编成不涉及这些内容,可以参考我的blog:
[原创]浅谈NT下Ring3无驱进入Ring0的方法
http://blog.csdn.net/mydo/archive/2007/01/14/1482893.aspx