返回首页 - Notes - 2012

硬件基础知识


中央处理器

CPU 的主要任务

  1. 从内存中获取机器语言指令,译码,执行
  2. 根据指令代码管理自己的寄存器
  3. 根据指令或自己的需要,修改内存的内容
  4. 响应其他硬件的中断请求

寄存器

通俗地说,寄存器 就是处理器中一些可以保存数据的地方

通用寄存器

常规通用寄存器:EAXEBXECXEDX

上述四个通用寄存器都是 32 位寄存器,其中其低 16 位是一个单独的寄存器,分别名为 AXBXCXDX

16 位又被分做两个 8 位寄存器,拿 EAX 来说,其中高 8 位名为 AH,低 8 位名为 AL,其他类同

特殊通用寄存器:ESIEDIESPEBP

这四个通用寄存器也是 32 位,也可访问其低 16 位,名字分别为 SIDISP 和 BP,但是其低 16 位不再有高低 8 位的划分

段寄存器和选择器

实模式下的 段寄存器 等同于保护模式下的 选择器,只是实模式下是 16 位,而保护模式下是 32

  1. CS:代码段(代码选择器)。同 IP 寄存器一同指向当前正在执行的地址,处理器执行时从这个寄存器指向的段或内存中获取指令,除了跳转或其他分支指令外,不允许修改该寄存器的内容
  2. DS:数据段(数据选择器)。该寄存器的低 16 位连同 ESI 一同指向指令将要处理的内存,同时,所有内存操作指令默认情况下都用它指定操作段或内存
  3. ES:附加段(附加选择器)。该寄存器的低 16 位连同 EDI 一同指向指令将要处理的内存,和DS一样,该寄存器可以被装入任意数值
  4. SS:堆栈段(堆栈选择器)。该寄存器的低 16 位连同 ESP 一同指向下一次堆栈操作说要使用的堆栈地址
  5. FSF 段(F 选择器)。可以将该寄存器作为默认段寄存器或选择器的替代品,和 DSES 一样,可以被装入任意数值
  6. GSG 段(G 选择器)。该寄存器和 FS 几乎完全一样

特殊寄存器

  1. EIP:这是非常重要的一个寄存器,同 CS 一同指向即将执行的那条指令的地址,除了跳转和分支指令,不能直接修改该寄存器的值
  2. IPInstruction Pointer,指令指针
  3. SPStack Pointer,堆栈指针

专用寄存器

  1. 控制寄存器:CR0CR2CR3
  2. 调试寄存器:D0D1D2D3D6D7
  3. 测试寄存器:TR3TR4TR5TR6
  4. 标志寄存器

date : 2012-06-13