汇编基础知识
最近感觉自己学的到了一个瓶颈,学的不知道有多少是记住的,总是感觉自己要学的东西有那么多,时间又太少。专业课也越来越多,花在编程上的时间就少了,但是这毕竟是我的兴趣爱好,所以我不想放弃。昨晚突然有个想法,以后写博客的频率加快,尽管这样博客的质量也就下降了很多,但是我还是觉得博客就是来记录我成长的地方,我该把我的学到的,哪怕是点点滴滴都记录下来,呵呵,不知道能坚持多久。 不久前看拿起了王爽老师的汇编语言看了看,觉得确实写的不错,当时因为都是基本的语法,我就看看就过去了。不过这些天发现突然很多都忘记了,所以写点东西来记录下。。。 首先是硬件的一些基础知识,cpu要对物理内存操作总得最起码要知道1,所操作的地址2.操作的数据3.操作的指令。所以cpu有地址总线(传地址的),有数据总线(传数据的),有控制总线(传命令的)。先是地址总线,一个cpu有N根地址线,寻址范围就是2^N次。数据总线也是一样的道理,传输数据都 是最大是2^N。8086cpu有20位地址总线,寻址能力是0~1M,但是数据总线是16位,就是只能传输数据0~64K,为了可持续发展,所以就想出了,两个16位地址通过一个特殊的加法器来算出一个20的地址,这就是所谓的段+偏移。具体算法:物理地址 = (段地址 * 16 + 偏移量)。16 = 0x10,其实就相当于是把段地址变成了20位和偏移量相加得出20位的物理地址。段