标签:指针 控制 组成 寻址 span 实现 物理 cpu 程序
一个典型的CPU由运算器,控制器和寄存器组成。对于一个汇编程序员来说,CPU中的主要部件是寄存器。寄存器是是CPU中程序员可以通过指令来读写的部件,程序员通过改变寄存器中的内容来实现对CPU的控制。
以8086CPU为例,该型CPU有14个寄存器:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW。该型CPU的寄存器都是16位,其中,由于AX,BX,CX,DX四个寄存器通常用来存放一般型数据,又称为通用寄存器。由于8086CPU的上一代CPU都是8位,为了保证兼容,8086的四个通用寄存器又可分解成8个8位寄存器,以保证上一世代的程序可以通过稍加修改用于8086CPU上。
8086CPU有二十位的地址总线,与其16位的寄存器在寻址时不能匹配,为了解决这个问题,8086CPU采用了用两个16位地址合成一个二十位物理地址的方法,其中一个称为段地址,一个称为偏移地址,当寄存器寻址时,地址加法器将两个地址合成一个20位的物理地址,从而进行寻址,其中,物理地址=段地址*16+偏移地址。
8086型CPU中,CS和IP被称为段寄存器,CS为代码段寄存器,IP为指令指针寄存器。每一台计算机启动时,他的IP寄存器中的地址总是固定不变的,CS寄存器存放CPU中要读取的指令在代码段中的地址,当开始执行指令时,CPU自动修改IP寄存器中的值,将所读取的指令长度加到IP寄存器中的地址上,为下一条指令做好准备。
标签:指针 控制 组成 寻址 span 实现 物理 cpu 程序
原文地址:http://www.cnblogs.com/tuolidixinyinli/p/7638088.html