前言:在一个星期前,我还是一个对汇编懵懵懂懂的少年,到现在我已经可以看得懂许多汇编代码,以及了解了C语言与汇编的种种关系。这些进步最终还是归功于孟宁老师的《Linux内核分析》这门课。以前一直在想,也许未来某一天我就掌握汇编了呢~可是那天总是遥遥无期。现在看来,要达到目的必须有足够的执行力,不然的话所有的东西都是高高在上不可触摸的梦想。
署名部分:彭家进 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
这个星期学到了什么:
了解了CPU的工作原理(包括寄存器,指针,总线等等)
懂得了一些基本的汇编指令。(例如mov,push,pop,enter,leave,ret,call等等)
还有一个就是本周的作业。由于是刚刚接触汇编,所以还有很多不如意的地方,还请多多指正。
最后是一个动图的效果:
对于CPU的工作模式的理解:
现在的手机、平板电脑越来越流行,再加上乔布斯的What you see is what you get哲学影响,人们看计算机越来越注意在了屏幕上面,对计算机本质的认识也越来越浅。甚至现在有一些高校取消了汇编代码的教学,一上来就是JAVA、类库的教学。这样会使得真正从底层认识计算机的人越来越少。
但是掌握计算机的本质是非常重要的。有的人会使用高级语言写出漂亮的程序但是不了解CPU的工作原理,这种人只能说是知其然而不知其所以然。
以我看来,CPU是一个真正的计算机。CPU能做的事情只有一个:计算。由其拓展出来,寻址,执行。在其基础上,衍生了堆栈的结构。这样便产生了模块化编程的概念。C也由此衍生,再到后来的C++更是C的一大飞跃。从此IT产业崛起,无数的勇士前赴后继,开发出各种各样,适合不同需求的类库。再到现在,可移动通讯设备(手机)大规模生产。人们使用智能移动设备完成生活中林林总总的任务。一个小小的CPU,已经改变了无数人的生活。
好了这就是本周的作业了。