汇编语言基础1
因为以后应该是要看内核相关的东西,内核百分之二十是用汇编语言写的,不会汇编显然不行,要学的东西还是真多,汇编只是正是走向内核之路的开始,万事开头难,还真是难,下午下载了2.6 和 4.04 的代码显然还是看不懂,那就从基础看把,我至少先搞明白内核是个什么东西,就选择了《linux内核设计与实践》这本书偏向理论,不过现阶段我就是看看内核是什么东西,然后在去看看为什么这样做,就是阅读源码(又是一项挑战)最后去实现一些有关的东西就是怎么做,最终再生成一门网络编程的技能。基本大学4年就够了,真的很多,我看需要拿出高中学习那股劲头了,这不是快高考了,回想起一年的前我,还在为高考而奋斗,现在我是在为了我的梦想而奋斗,我想写一个属于自己的操作系统不为别的,就为了好玩。扯远了。。。。。。。。
今天书刚刚拿到手就看了第一章很基础但是我还是学到了很多知识。
语言的发展:
首先是机器语言,全都是0和1组成的,很麻烦很容易出错,进而人们发明了汇编语言还是不购简单,然后又有了现在许许多多的语言。
汇编语言:
汇编语言直接可以通过编译器成为机器语言,别的语言先要转化成汇编语言才能编译成机器语言
汇编语言有以下3类指令集组成:
1.汇编指令
2.位置令(无对应的机器码)
3.其他符号+-*/等(无对应的机器码)
汇编语言的核心是汇编指令,它决定了汇编语言的特性
存储单元:
微机存储器的容量是以字节为最小单位来计算的,对于一个拥有128个存储单元的存储器,就可以说它的容量是128字节。
CPU 对存储器的读写:
1.指定存储单元的地址
2.选择是写入还是读取
3.读或者写的数据
地址总线:
CPU 是通过地址总线来指定存储单元的,假设一个CPU 有10根地址总线那么CPU就可以寻找2的10次方个内存单元,16位--》64KB 32位--》4GB 64位--》2EB
现阶段64位居多,这么大的一个地址空间暂时使用不完了。
数据总线:
它的宽度决定了CPU和外界的数据传送速度,8根数据总线一次可以传递一个8位的二进制数据(1KB),同理16位(2KB)
控制总线:
CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是一个总称,控制总线的宽度决定了CPU对外部器件的处理能力。
小结:
存储单元从0开始顺序编号每一个CPU芯片都有许多管脚,这些管脚与总线相连,也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能。
地址总线:决定寻址的能力
数据总线:决定与其他数据传送一次数据量
控制总线:决定CPU对系统中其他器件的控制能力
原文地址:http://blog.csdn.net/zmrlinux/article/details/46381501