回复:30楼
这是为了解释C过程调用而介绍的32位保护模式下汇编。不是我不会16位汇编。另外这也不是汇编教程。但是我想我确实给出了汇编最本质的内容。对于汇编介绍,概念清晰而且足够简单才是本文应该关注的。
关于16位汇编到32位保护模式之间的切换,涉及的内容比较复杂,不是本文这篇幅能够介绍的。有兴趣的童鞋可以参考于渊《一个操作系统的实现》,里面相当清楚的介绍了切换内容。觉得自己英文NB的也可以直接参考Intel CPU说明书第三卷。但是我想能把那本书搞定并自己动手实践自己的操作系统的童鞋不需要看这篇文章了吧。
另外再修正自己的一个错误:
mov eax, [ebp + 8] ;复制第二个参数值(var2)到eax
mov eax, [ebp + 12] ;加上第一个参数值(var1)
//这里应该是add eax, [ebp + 12]
这是为了解释C过程调用而介绍的32位保护模式下汇编。不是我不会16位汇编。另外这也不是汇编教程。但是我想我确实给出了汇编最本质的内容。对于汇编介绍,概念清晰而且足够简单才是本文应该关注的。
关于16位汇编到32位保护模式之间的切换,涉及的内容比较复杂,不是本文这篇幅能够介绍的。有兴趣的童鞋可以参考于渊《一个操作系统的实现》,里面相当清楚的介绍了切换内容。觉得自己英文NB的也可以直接参考Intel CPU说明书第三卷。但是我想能把那本书搞定并自己动手实践自己的操作系统的童鞋不需要看这篇文章了吧。
另外再修正自己的一个错误:
mov eax, [ebp + 8] ;复制第二个参数值(var2)到eax
mov eax, [ebp + 12] ;加上第一个参数值(var1)
//这里应该是add eax, [ebp + 12]

