Program Execution – II

As I have discussed in my previous post here, every engineer should break up the components. Moving further IA-32 supports the following register types

 a)      General Purpose Register

b)      Floating Point Registers

c)      MMX Registers

d)      XMM Registers

e)      Control Registers

f)        Memory Management Registers

g)      Debug Registers

h)      Memory Type Range Registers

i)        Machine Specific Registers

j)        Machine Check Registers

k)      Performance Monitoring Counters


Wow!, they are quite a number of them which are very important to understand and which I will be covering in detail .

Following list shows the number of registers of each type that IA-32 supports

  • 8 -32bit  General purpose registers
  • 6 -16bit Segment registers
  • 1 – 32 bit Eflags register
  • 1 – 32 bit instruction pointer
  • 8 Floating Point Data Registers
  • 1 Floating point unit control register
  • 1 Floating point unit Instruction Pointer register
  • 1 Floating point unit operand pointer register
  • 1 Tag register
  • 1 Floating point unit opcode register.
  • 8 MMX registers
  • 8 XMM registers
  • 232 -1 Address space.
  • 5 Control registers
  • 3 Memory management Registers ( GDTR, LDTR and IDTR )
  • 8 Debug registers

Below diagram shows the interaction between the layers , I have only considered Basic execution registers.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s