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

 计算机体系结构

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:文本段(地址段),表示地址段的开始,包括程序执行的指令。

 

 

转载于:https://my.oschina.net/u/2567345/blog/1526804

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值