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

2.1 通用寄存器

1.  8086CPU所有的寄存器都是16位的,可以存放两个字节

2.  AX、BX、CX、DX,4个寄存器通常用来存放一般性数据,被称为通用寄存器

3.  一个16位的寄存器可以存储一个16位的数据。    思考:一个16位的寄存器所能存储的数据最大值为多少?

4.  8086CPU的AX、BX、CX、DX(16位寄存器)每个都可以分为两个可独立使用8位寄存器来用:

      AX可分为AH、AL

      BX可分为BH、BL

      CX可分为CH、CL

      DX可分为DH、DL

2.2 字在寄存器中的存储

1.  8086CPU可以一次性处理以下两种尺寸的数据:

      (1)字节:byte,一个字节由8个bit组成,可以存在8位寄存器中。

      (2)字:word,一个字由两个字节组成,分别称为高位字节和低位字节。

      *还存在双字、四字

2.3 几条汇编指令

  【重要】计算

【重要】计算

                      

2.4 物理地址

1.  CPU通过地址总线送入存储器的,必须是一个内存单元的物理地址。

2.  在CPU向地址总线上发出物理地址之前,必须要在内部先形成这个物理地址。

2.5 16位结构的CPU

1.  8080、8085等是8位机,8086是16位机。

2.  16位结构CPU的结构特性

      (1)运算器一次性可以处理16位数据。

      (2)寄存器的最大宽度位16位。

      (3)寄存器和运算器之间的通路为16位。

2.6 8086CPU给出物理地址的方法

1.  8086CPU有20位地址总线,可以传送20位地址,达到1MB的寻址能力。

2.  8086CPU是16位结构,在内部一次性处理、传输、暂时存储的地址为16,这样看来,表现出的寻址能力只有64KB。

3.  8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址

4.  物理地址=段地址*16+偏移地址            记为   段地址:偏移地址

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

1.  CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。

2.8 段的概念

1.  内存无分段,段的划分来自CPU。

2.  可将若干地址连续的内存单元看成一个段。

3.  一个段的起始地址(段地址*16)一定是16的倍数

4.  偏移地址为16位,16位的寻址能力为64KB,所以一个段的长度最大为64KB

**小结:

1.    CPU可以用不同的段地址和偏移地址形成同一个物理地址

2.    给定一个段地址,仅通过变化偏移地址来进行寻址,最多可寻64KB个内存单元。      偏移地址16位,变化范围为0~FFFFH      例:给定段地址1000H,CPU寻址范围为:10000H~1FFFFH

3.    在8086PC机中,存储单元的地址用两个元素来描述,即段地址和偏移地址。    例:  (数据存在21F60H内存单元中)  数据存在内存2000:1F60单元中   数据存在内存的2000H段中的1F60H单元中。

4.    可以将地址连续起始地址为16的倍数的一组内存单元定义为一个段。

    【例题】

2.9 段寄存器

1.  8086CPU有4个段寄存器:CS、DS、SS、ES。

2.  段寄存器提供内存单元的段地址

2.10 CS和IP

1.  CS和IP指示了CPU当前要读取指令的地址。

2.  CS为代码段寄存器,IP为指令指针寄存器。

3.  任意时刻,CPU将CS:IP指向的内容当做指令执行。

4.  工作过程简述为下:

      (1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;

      (2)IP=IP+所读取指令的长度,从而指向下一条指令

      (3)执行指令。转到步骤 (1) ,重复这个过程。

5.  8086CPU加电启动或复位后(CPU刚开始工作时)CS=FFFFH   IP=0000H,即,8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令是其开机后执行的第一条指令。

猜你喜欢

转载自www.cnblogs.com/Master-Sun/p/9786833.html