第二章笔记

8086 Intel系列16位处理器,地址总线20

 

寄存器

AX      Acummulator Register           基础寄存器

BX Base Register                  基础寄存器

CX Count Register                 计数寄存器

DX Data Register                  记址寄存器

 

CS Code Segment Register          代码段寄存器

IP Instruction Pointer Register   指令指针寄存器

 

 

字长16位,则说16位寄存器

位宽:外部数据总线与内存之间一次能传输的数据位数

8086        16位CPU (字长16位,位宽16位)

80386SX     准32位CPU (字长32位,位宽16位)

pentium    32位CPU (字长32位,位宽64位)

 

 

ISA 

指令及体系结构:支持的指令和指令的字节编码

Instruction Set Architecture

IA32指令集,俗称X86

 

不同CPU差异

  1. 字长不同,速度不同
  2. 工作模式不同
  3. 指令集的丰富程度

 

 

通用寄存器

AX  AH、AL

BX  BH、BL

CX  CH、CL

DX  DH、DL

一个字由两个字节组成,可以存在一个16位寄存器中。字的高8位 → 存放于通用寄存器的高8位寄存器

字的低8位 → 存放于通用寄存器的低8位寄存器。

 

 

 

mov,add指令中,两个操作的对象位数应一致

mov ax,bl  错误  ax16位,bl8位

mov  al,2000 错误  al8位,溢出

 

 

 

1

 

(AX) = 8226H, (BX) = 8226H

 执行ADD  AX, BX后, 求(AX)

     8  2 2 6 H

+   8  2 2 6 H

 1 0  4 4 C H

 

 2

(AX) = 00C5H

执行ADD  AL, 93H后,求 (AX)

 

  C 5 H

+   9 3 H

1   5 8 H

 808616位寄存器无法直接表示20位物理地址

寄存器16位,但物理地址20

解决方法:用两个16位地址合成一个20位的物理地址

8086在内部用两个16位地址 通过计算合成得到一个20位的物理地址。

计算合成由CPU内部的地址加法器实现。

基础地址  ×  16  +  偏移地址  =  物理地址

 

123CH  ×  16   +   0008H   =   123C8H

起始物理地址是: 123C0H

1230CH  ×  16   +   00C8H   =   123C8H

起始物理地址是: 12300H

 

段的概念:将地址连续、起始物理地址为16倍数的一组内存单元(不超过64KB)当作一个「段」使用。

1「段地址: 偏移地址」  也称「逻辑地址」

2「段地址 × 16 」 构成段的起始物理地址,故根据需要划分段使用时,段的起始物理地址必须是16的倍数。

一个物理地址可以用不同的「段地址: 偏移地址」表示。只要满足段的起始物理地址是16的倍数。

物理地址: 123C8H

段地址: 偏移地址 1230:00C8   123C:0008

 

CS: 代码段段寄存器,用于存放代码段的「段地址」

IP:  指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址。

CS:IP对应的物理地址存放的是CPU将要读取的指令。

(CS) × 16 + (IP)  → 指令的物理地址

 

内部总线实现CPU内部各个部件之间的联系,外部总线实现CPU和主板上其他器件的联系。

 

CPU可以实现的功能:1. 运算器进行信息处理

  1. 寄存器进行信息存储
  2. 控制器控制各种器件进行工作
  3. 内部总线连接各种器件,在它们之间进行数据的传送

 

 

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

 

不同的段地址和偏移地址可以形成同一个物理地址。比如CPU要访问21F60H单元,则它给出的段地址SA和偏移地址EA满足SA*16+EA=21F60H即可。

 

 

假设给定段地址为1000H,用地址偏移寻址,CPU的寻址范围为:10000H-1FFFH

 

posted @ 2018-09-24 22:53  Nebulas  阅读(231)  评论(0)    收藏  举报