【汇编语言学习笔记】第二章 寄存器

一个典型的CPU由运算器,控制器和寄存器等器件组成,靠内部总线连接

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

在8086CPU中有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW,所有寄存器都是16位的可以存放两个字节

AX、BX、CX、DX为通用寄存器

以AX为例,存储结构如下图
在这里插入图片描述
由于8086上一代寄存器为8位,为了兼容,8086的这4个通用寄存器每个又可以分为两个可独立使用的8位寄存器来使用
还是以AX为例
在这里插入图片描述
低8位构成AL寄存器,高8位构成AH寄存器(同理BX分为BL和BH)

出于对兼容性的考虑,8086CPU可以一次性处理两种尺寸的数据

  • 字节:Byte,有8个bit组成,可以存在8位寄存器中
  • 字:word,一个字由两个字节组成,分别成为高位字节和低位字节,分别存在16位寄存器的高8位和低8位

几条简单的汇编语句
在这里插入图片描述
CPU访问内存单时要给出内存单元的地址,在CPU向地址总线发出物理地址之前,必须要在内部先形成这个物理地址,下面介绍8086CPU如何在内部形成内存单元的物理地址。
8086CPU是16位的CPU,16位的意思是

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

8086CPU有20位地址总线,可传送20位的地址,达到1MB的寻址能力,而内部表现的寻址能力只有64KB(16位),所以8086在内部采用两个16位地址合成的方法来形成一个20位的物理地址
在这里插入图片描述
CPU中的相关器件提供两个16位的地址,一个称为段地址,一个称为偏移地址,两个地址通过内部总线送入地址加法器,地址加法器采用物理地址=段地址×16+偏移地址的方法合成物理地址(×16代表左移4位的意思),再通过内部总线将合成的物理地址送入输入输控制电路,再将20位物理地址送上地址总线,20位物理地址被地址总线传送到寄存器。

关于段:
根据实际需要,将地址连续的内存单元看作一个段,用段地址×16定位段的起始地址,用偏移地址定位段中的内存单元。易知,同一个地址可有不同的段地址和偏移地址得到。
CS为段寄存器,IP为指令指针寄存器分别来存储段地址和偏移地址CS:IP可表示一个物理地址,任何时刻,CPU将CS:IP指向的内容当作指令执行

8086CPU的工作过程可以简要描述如下

  1. 从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器
  2. IP=IP+所读取指令的长度,从而指向下一指令
  3. 执行指令,转到步骤1,重复这个过程

       本文大多内容及配图摘自王爽老师《汇编语言》一书,如有侵权,请联系我,我将即刻删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值