计算机体系结构
2.1 内存结构
1,计算机将每个固定大小的存储单元依次编号,每个存储单元大小为1个Byte(8个bit)
2,内存即可以存储CPU指令,也可以存储数据。只是CPU对内存数据的解释不一样。
2.2 CPU的构造
CPU一次从内存中读取一条指令并执行,这个过程即为读取-执行周期(又称为指令周期)。需要以下元件:
1,程序计数器:保存即将执行的下一条指令的内存地址。CPU先查看程序计数器,然后提取存放在指定内存地址的数字,接着传递给指令解码器。
2,指令解码器:解释指令。具体包括操作码、涉及的内存单元。
3,数据总线:简单的理解为CPU和内存之间的物理连线。通过它获取内存单元中存储的数据
4,通用寄存器:进行运算的主要地方,一般用来处理算术运算、比较运算等。CPU的通用寄存器数量较少,大部分信息存储在主存中。
5,逻辑计算单元:CPU取回需要的所有数据后,将数据和解码后的指令传递给逻辑计算单元。它是实际执行指令的地方。
2.5 寻址方式(数据访问方式)
1,立即数寻址:在指令中直接给出数值,而不是告诉CPU去哪个地址取数据
2,寄存器寻址:访问CPU的寄存器,而不是内存地址
3,直接寻址(针对内存):访问内存地址
4,变址寻址(针对内存):包含内存地址和变址寄存器(存储相对内存地址的偏移)
5,间接寻址(针对寄存器中保存的内存地址):指令中包含一个寄存器,该寄存器中存储的是指向要访问数据的指针
6,基址寻址(针对寄存器中保存的内存地址+偏移量):间接寻址+偏移量
汇编术语
字长:计算机中,典型寄存器的大小。
x68 32bit的字长为4字节
地址的长度也是4字节
指针:存储在内存中的数据的地址。
伪指令:在汇编程序中,任何以.开始的指令都不会被直接翻译成机器指令,这些针对汇编程序本身的指令,它首先要经过编译器的处理,而不是直接由计算机执行,被称为汇编指令或伪操作。
.section:它将汇编程序分为几个部分。一般包括以下几个段:
.data:表示数据段的开始,数据段要列出程序数据所需的所有内存存储空间。
.text:文本段(地址段),表示地址段的开始,包括程序执行的指令。