您的位置:首页 > 其它

读王爽老师汇编语言笔记---寄存器(cpu工作原理)

2013-06-22 09:59 489 查看
2013-6-19 21:12:07

一个典型的cpu是用运算器、控制器、寄存器等器件组成。在cpu中 

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

对于程序员来说,cpu的主要器件就是寄存器。寄存器是cpu中程序员可以用指令读写的的部件,程序员通过改变各种寄存器中的内容来时来实现对cpu的控制

不同的cpu,寄存器的个数,结构是都不同的,8086有14个寄存器,每个寄存器都有对应的名字

如:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW 

8086cpu的所有寄存器都是16位,存放2个字节

AX BX CX DX 四个寄存器用来存放一般性的数据,被称为通用寄存器

段寄存器:CS DS SS ES

CS和IP 是8086cpu中最关键的寄存器,它们指示了cpu当前要读取指令的地址。

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

例如:

在8086机中,任意时刻,假设CS中的内容为M, IP中的内容为N,

8086cpu将内存M * 16 + N 单元开始,读取一天指令并执行

也就是说:8086中,任意时刻cpu将CS:IP指向的内容分当作指令执行。

切不能通过mov指令来设置CS IP的值,原因很简单,8086cpu没有提供这个功能

能够修改他们内容的指令被统称为转移指令(jmp)

1、 16位寄存器组

16位CPU所含有的寄存器有(见图2.1中16位寄存器部分):
4个数据寄存器(AX、BX、CX和DX)

2个变址和指针寄存器(SI和DI)2个指针寄存器(SP和BP)
4个段寄存器(ES、CS、SS和DS)

1个指令指针寄存器(IP)1个标志寄存器(Flags)
2、 32位寄存器组

32位CPU除了包含了先前CPU的所有寄存器,并把通用寄存器、指令指针和标志寄存器从16位扩充成32位之外,还增加了2个16位的段寄存器:FS和GS。

32位CPU所含有的寄存器有(见图2.1中的寄存器):
4个数据寄存器(EAX、EBX、ECX和EDX)

2个变址和指针寄存器(ESI和EDI)2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS、SS、DS、FSGS)

1个指令指针寄存器(EIP)1个标志寄存器(EFlags)
16位结构的cpu

概括的讲,16位结构描述了一个cpu具有下面几个方面的结构特征:

1、运算器一次最多可以处理16位的数据

2、寄存器的最大宽度为16

3.寄存器和运算器之间的通路为16位

8086是一个16位结构的cpu,也就是说,在8086内部,能够一次性处理、传输、暂时存储的信息的最大长度是16位的。内存单元的地址在送上地址总线之前,必须在cpu中处理传输、暂时存放,对于16位cpu,

能一次性处理,传输、暂时存储16位的地址

8086有20位地址总线 ,可以传输20位地址, 寻址能力达到1MB,8086的cpu又是16位结构,在内部次性处理,传输、暂时存储16位的地址,,如果将地址从内部简单的出发,那么它只能送出16位的地址,表现的寻址能力大大降低

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

1、 cpu相关部件提供两个16位的地址。一个称段地址,另一个称为偏移地址

2、段地址和偏移地址通过内部总线送入一个称为地址加法器的部件

3、地址加法器的部件将2个16位的地址合成一个20位的物理地址

4、地址加法器通过内部总线将20位的物理地址送入输出输入的控制电路

5、 输出输入控制电路将20为物理地址送到地址总线上

6、20位物理地址被地址总线传送到存储器

(地址加法器采用物理地址 = 段地址 * 16 + 偏移地址的方法来合成物理地址) 

上面公式的本质含义:

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

在编程时根据需要,将若干地址连续的内存单元看作一个段,用段地址 * 16定位段的起始位置(基础地址),用偏移地址定位段中的内存单元,所以

1、段地址必然是16的倍数,所以一个段的其实地址也一定是16的倍数

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

有段地址和偏移地址合成物理地址

所以cpu可以用不同的段地址和偏移地址形成同一个物理地址

cpu访问内存单元时,必须向内存提供内存单元的物理地址

给定一个段地址的话,因为偏移地址为16位

所以最多可以偏移FFFFH,也就是最多可以偏移64KB个内存单元
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: