二.汇编-寄存器

22 篇文章 0 订阅
19 篇文章 0 订阅

一个典型的CPU是由运算器,控制器,寄存器组成。这些器件靠内部总线相连,相对于CPU内部来说是外部总线。内部总线实现CPU内部各个器件的之间的联系,外部总线实现CPU和主板其他器件的联系。在CPU中

  • 运算器进行信息处理
  • 寄存器进行信息存储
  • 控制器控制各个器件间工作
  • 内部总线连接各个器件,在他们之间进行数据的传送

1.通用寄存器

a. 8086CPU所有寄存器都是16位的,可以存放两个字节。AX,BX,CX,DX 这四个寄存器通常存放一般性的数据,称为通用寄存器。
16位寄存器逻辑结构
上图是 16位寄存器的逻辑结构。

2.字在寄存器中存储

  • 字节:称为byte,由8位bite组成,可以存在 8 位寄存器中。
  • 字:称为word,由两个字节组成,这两位字节分别称为高位字节和低位字节

一个字可以存在16位寄存器中,这个字的高字节和低字节自然就存在这个寄存器的高8位和低8位中了。

3.几条汇编指令

a.通过汇编指令控制CPU进行工作
--------- 汇编指令举例
汇编指令举例
b. 在进行数据传送和运算时,要注意指令两个操作的对象位数应当是一致的。

4.物理地址

a.CPU访问内存单元时,需要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。
b.CPU 通过地址总线送入寄存器的,必须是一个内存单元的物理地址。

5. 64位结构的CPU

  • 运算器一次最多处理64位的数据
  • 寄存器的最大宽度为64位
  • 寄存器和运算器之间的通路为64位

6.8086CPU 给出物理地址方法

a.采用两个 16位地址合成的方法来形成一个20位的物理地址。
b.通过地址加法器实现段地址+偏移地址得到物理地址。
逻辑结构图
上图是8086CPU 相关逻辑结构的部件

7.“段地址*16+偏移地址=物理地址”的本质含义

a. CPU在访问内存时,用一个基础地址和一个相对基础地址的偏移地址相加,给出内存单元的物理地址。

8.段的概念

a.段并不是由内存分段而来,内存并没有分段,段的划分来自于CPU。
b.CPU 可以使用不同的段地址和偏移地址形成同一个物理地址。

9.段寄存器

a.段寄存器提供段地址。比如8086CPU 有4个段寄存器:CS、DS,SS, ES。
当需要访问段地址时候,由这些寄存器提供。

10.CS和IP

a. CS和IP 是8086CPU 中最关键的两个寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器。
8086CPU读取和执行指令的相关部件
上图是8086CPU读取和执行指令的相关部件

CPU 工作时把有的信息看作指令,有的信息看作数据。所有的指令和数据都是二进制信息。
思考?CPU 根据什么将内存中的信息看作指令。

11. 修改CS和IP的指令

a. 在CPU 中程序员能够通过指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容(也就是通过修改CS和IP的内容)来对CPU进行控制。
b.一种简单的方法采用jpm指令(转移指令)

12.代码段

a.(相对于 16位 PC机)我们可以将一组长度为N的代码,存在一组地址连续,起始地址为 16 的倍数的内存单元中,我们可以认为这段内存就是用来存放代码的,从而定一个了一个代码段。

常用指令
上图是常用的一些debug 指令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值