您的位置:首页 > 运维架构 > Linux

深入理解程序设计-使用Linux 32bit 汇编语言

2017-08-31 00:00 676 查看
摘要: 知识点总结

计算机体系结构

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:文本段(地址段),表示地址段的开始,包括程序执行的指令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: