宫玄 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
冯诺依曼体系结构是为大家熟知的计算机架构
从程序员的角度分析:
接下来是一个简单的汇编代码,现在来分析一下工作过程中堆栈的变化:
初始时堆栈为空,ebp和esp指向同一位置。ebp标识堆栈的栈底,esp标识堆栈的栈顶。
当执行pushl $8时,esp减4,存入8.
当执行movl %esp,%ebp时,ebp指向esp现在的位置
subl $4,%esp 执行时,esp减4
movl $8,(%esp) 执行时,esp指向的地址存入8
总结:计算机是如何工作的?
计算机在运行时,指令是一条一条读取,先从内存中取出第一条指令,然后IP加1,通过控制器的译码,按指令的要求,从存储器中取出数据或者指令(数据和指令同等对待)进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。然后读取第二条指令,以类似的方式执行。