This figure shows the Intel family of microprocessors bus and memory sizes.The memory size have increased through the various processors and similarly the data bus width and address bus width.






 General purpose registers are:


The top portion of the programming model contains the general purpose registers:EAX, EBX, 


It can carry both Data & Address offsets

Although general in nature, each has a special purpose and name:

EAX – Accumulator   Used also as AX (16 bit),            AH (8 bit), and AL (8 bit)

EBX – Base Index often used to address memory (BX, BH, and BL)

ECX – count, for shifts, rotates, and loops (CX, CH, and CL)

EDX – data, used with multiply and divide (DX, DH, and DL)

EBP – base pointer used to address stack data (BP)

ESI – source index (SI) for memory locations, e.g. with string instructions

EDI – destination index (DI) for memory locations


The special purpose register are:



  Each has a specific task

–ESP – Stack pointer: Offset to the top of the stack in the stack segment. Used with procedure calls (SP)

–EIP – Instruction Pointer: Offset to the next instruction in a program in the code segment (IP)

–EFLAGS – indicates latest conditions (state) of the microprocessor (FLAGS)


The major EFLAGS are:


•C – Carry/borrow from last operation

•P – the parity flag (little used today)

•A – auxiliary flag Half-carry between bits 3 and 4,

  used with BCD arithmetic

•Z – zero

•S – sign

•O – Overflow

•D – direction – Determines auto increment/decrement direction for SI and DI registers with string instructions

•I – interrupt – Enables (using STI) or disables (using CLI) the processing of hardware interrupts arriving at the INTR input pin of the processor

•T – Trap – Turns trapping interrupt (for program debugging) on/off



The segment registers are:


•The segment registers are:

–CS (code),

–DS (data),

–ES (extra data. used as destination for some string instructions),

–SS (stack),

–FS, and GS: Additional segment registers on 80386 and above

•Segment registers define the start of a section (segment)     of memory for a program. 

•A segment is either:

  – 64K (216) bytes of fixed length (real mode), or

  – Up to 4G (232) bytes of variable length (protected mode).

•All code (programs) reside in a code segment.




Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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