寄存器知识点

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

  8086CPU中有14个寄存器,每个寄存器有一个名称:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。所有寄存器都是16位的,可以存放两个字节。AX可以分为AH和AI;BX可以分为BH和BL;CX可以分为CH和CL;DX可以分为DH和DL;

  8086CPU可以一次性处理字节(byte)和字(word)两种尺寸的数据。

  在编写一条汇编指令或一个寄存器的名称时不区分大小写。

  CPU访问内存单元时,要给出内存单元的地址。所有的内存单元构成存储空间是一个一维的线性空间,每个内存单元在这个空间汇总都有唯一的地址,简称:物理地址‘

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

  在8086内存,能一次性处理、传输、暂时存储的信息的最大长度是16位的。内存单元的地址在送上地址总线之前,必须在CPU中处理、传输、暂时存放。

  8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力。其采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。

  CPU中的相关部件提供两个16位的地址,一个成为段地址,另一个称为偏移地址。

  地址加法器采用物理地址=段地址*16+偏移地址。

  段地址*16必然是16的倍数,所以一个段的起始地址也一定是16的倍数。偏移地址位16,16位地址的寻址能力为64KB,所以一个段的长度最大位64KB。

  CPU可以用不同的段地址和偏移地址形成同一个物理地址。偏移地址16位,变化范围为0-FFFFH。

  CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。CS位代码段寄存器,IP位指令指针寄存器。设CS中的内容为M,IP中的内容为N,8086CPU将从内存M*16+N单元开始,读取一条指令并执行。

  “jmp段地址:偏移地址”指令功能为:用指令中给出的段地址修改CS,偏移地址修改IP。

  CPU只认被CS:IP指向的内存单元中的内容为指令。所以,要让CPU执行我们放在代码段中的指令,必须要将CS:IP指向所定义的代码段中的第一条指令的首地址。

猜你喜欢

转载自www.cnblogs.com/smallblog/p/9766170.html