相关疑难解决方法(0)

x86寄存器:MBR/MDR和指令寄存器

根据我的阅读,IA-32架构有10个32位和6个16位寄存器.

32位寄存器如下:

  • 数据寄存器 - EAX,EBX,ECX,EDX
  • 指针寄存器 - EIP,ESP,EBP
  • 索引寄存器 - ESI,EDI
  • 控制寄存器 - EFLAG(EIP也被归类为控制寄存器)

16位寄存器如下:

  • 代码段:它包含要执行的所有指令.
  • 数据段:它包含数据,常量和工作区域.
  • 堆栈段:它包含过程或子例程的数据和返回地址.
  • 额外细分(ES).指向额外数据的指针.
  • F段(FS).指向更多额外数据的指针.
  • G段(GS).指向更多额外数据的指针.

但是,我找不到有关当前指令寄存器(CIR)或存储器缓冲寄存器(MBR)/存储器数据寄存器(MBR)的任何信息.这些寄存器是否被称为其他东西?这些寄存器是32位吗?

我假设它们是32位的,并且在这种架构下最常用的指令长度不超过4个字节.从观察来看,许多指令似乎都在4个字节以下,例如:

  • 推动EBP(55)
  • MOV EBP,ESP(8B EC)
  • LEA(8D 44 38 02)

对于更长的指令,CPU将使用前缀代码和其他可选代码.较长的指令需要多个周期才能完成,这取决于指令长度.

我是否正确,因为有问题的寄存器长度为32位?IA-32架构中是否还有其他寄存器,我也应该注意这些寄存器?

cpu x86 cpu-architecture cpu-registers

1
推荐指数
1
解决办法
347
查看次数

标签 统计

cpu ×1

cpu-architecture ×1

cpu-registers ×1

x86 ×1