前言——从上大学后,尽管自己是计算机专业,却几乎从未认真听过一门专业课,无论是汇编语言,C语言,还是算法,数据结构,甚至基础的高数高代,都未曾认真学过,这恐怕成为我的一大遗憾了,而那时候的自己觉得上了大学后,学习什么的就不重要了,尽管是一所985院校,尽管未曾挂过一门课,但是毕业后才发现自己什么都不会,什么都不扎实,也以自己的惨痛经历告诉各位学弟学妹们,别听别人所说的大学的学习一点不重要,那都是扯淡,别人可以不学,你自己心里要有目标有规划。我荒废了整整七年,从最近开始重新学习逆向,从王爽老师的汇编语言第二版入手,每天或者有时间定期发布博客,我的基础太差了,我从最基础的学起,希望各位看官路过别嘲笑。浪子回头金不换,互勉!
第一章 基础知识
汇编语言主要由三类指令组成:
汇编指令:机器码的助记符,有对应的机器码(是汇编语言的核心)
伪指令:没有对应的机器码,由编译器执行,计算机并不执行
其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码
比特(bit)是计算机最小的信息单位
1字节(Byte)=8bit
CPU(Central Processing Unit):*处理单元
CPU要想进行数据的读写,必须和芯片进行下列三类信息的交互:
- 存储单元的地址(地址信息)——对应地址总线
- 器件的选择,读或写的命令(控制信息)——对应控制总线
- 读或写的数据(数据信息)——对应数据总线
- 一个CPU有N根地址线,可以说这个CPU的地址总线的宽度为N,这样的CPU最多可以寻找2的N次方个内存单元。
- 数据总线的宽度决定了CPU和外界的数据传送速度。例如:8根数据总线一次可以传送一个8位二进制数据,即一个字节,16根数据总线则一次可以传送两个字节。
- CPU对外部器件的控制是通过控制总线来进行的。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制,所以控制总线的宽度决定了CPU对外部器件的控制能力。
接口卡:CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。
存储器芯片主要分为:随机存储器(RAM)和只读存储器(ROM)
ROM只能读不能写,因此向只读存储器中写入数据的操作是无效的。
各类存储器尽管在物理上是独立的器件,但在以下两点是相同的:
- 都和CPU的总线相连
- CPU对它们进行读或写的时候都通过控制总线发出内存读写命令
内存地址空间的大小受CPU地址总线宽度的限制,例如8080CPU的地址总线宽度为20,即可以传送2^20个不同的地址信息,则其内存地址空间大小为1MB;同理,80386CPU的地址总线宽度为32,则内存地址空间最大为4GB;
- 不同的计算机系统的内存地址空间的分配情况是不同的。
以上就是今天学习的总结,后面把第一章的习题贴出来,学的内容确实基础,不怕各位笑话,这么基础的内容,我之前几乎大半都忘记了