本篇文章为本人的汇编学习笔记,因为没有任何基础,所以大部分都是偏基础的东西,参考的是王爽的《汇编语言第三版》以及小甲鱼的汇编语言视频和网上各类资料
什么是汇编语言
汇编语言是二进制指令的文本形式,与指令是一一对应的关系
什么是寄存器
因为cpu只负责运算,数据一般都存储在内存之中
但是cpu的运算速度远高于内存,为了避免被拖慢,cpu都自带有一级缓存和二级缓存
但是,cpu缓存还不够快,另外数据在缓存中地址还是不固定的,每次读写都要寻址,会拖慢速度
所以除了缓存之外,cpu还自带了寄存器,用来存储最常用的数据,就是那些最频繁读写的数据,都会被放在寄存器里面,cpu优先读写寄存器,再由寄存器和内存交换数据
寄存器不依靠地址区分数据,而依靠名称。
一个cpu里有多个寄存器
寄存器是相对缓存来说更接近cpu的存在
汇编语言由以下三类组成
1 汇编指令(机器码的助记符,有对应的机器码)
2 伪指令(没有对应的机器码,由编译器执行,计算机并不执行)
3 其他符号(如+ - * / 等,由编译器识别,没有对应的机器码)
汇编语言的核心就是汇编指令,它决定了汇编语言的特性
存储器
cpu是cpu是计算机的核心部件,它控制整个计算机的运作并进行运算,要想让一个cpu工作,就必须向他提供指令和数据。
指令和数据在存储器中存放,也就是平时说的内存
cpu想要进行数据的读写,必须和外部的芯片进行三类信息的交互:
1.存储单元的地址(地址信息)
2.器件的选择,读或写命令(控制信息)
3.读或写的数据(数据信息)
在计算机中专门有链接cpu和其他芯片的导线,通常称为总线。
逻辑上分为:
1.地址总线
2.数据总线
3.控制总线
地址总线
一个cpu有n根地址总线,则可以说这个cpu的地址总线的宽度为n
这样的cpu最多可以寻找2的n次方个内存单元。
数据总线
cpu与内存或其他器件之间的数据传送是通过数据总线来进行的,数据总线的宽度决定了cpu和外界的数据传输速度
控制总线
cpu对外部器件的控制是通过控制总线来进行的,在这里控制总线是一个总称,控制总线是一些不同控制线的集合,有多少根控制总线,就意味着cpu提供了对外部器件的多少种控制,所以,控制总线的宽度决定了cpu对外部器件的控制能力,控制总线上发送的是控制信息
检测点1.1
1 一个cpu的寻址能力为8KB,那么它的地址总线的宽度为13
8KB=8192byte,即最多可以寻找8192个存储单元
计算得知8192为2的13次方,即这个cpu的地址总线宽度为13
2 1KB的存储器有1024个存储单元,存储单元的编号从0到1023
一个存储单元的存储大小为8bit,8bit=1byte,1KB=1024byte,所以有1024个存储单元
3 1KB的存储器可以存储8192个bit,1024个byte
4 1GB、1MB、1KB分别是 1073741824byte,1048576byte,1024byte
5 8080、8088、80286、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为:64KB 1MB 16MB 4GB
6 8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根,32根,则它们的寻址能力分别为 1,1,2,2,4
7 从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次
8 在存储器中,数据和程序以二进制形式存放