x86 CPU ARCHITECTURE
SANGRAM KESARI RAY <SHANKAR.RAY030@GMAIL.COM>
CPU DESIGN
• C LO C K / / S Y N C H R O N I Z AT I O N F O R O P E R AT I O N S – R E A D I N G F R O M M E M O RY, D O I N G A R I T H M E T I C
I N A L U, E TC .
• C O N T R O L U N I T
• A R I T H M E T I C LO G I C U N I T
• B U S ( PA R A L L E L W I R E S A C R O SS T H E C O M P O N E N TS, E TC H E D O N T H E M OT H E R B O A R D / / B E T W E E N
C P U A N D M E M O RY, E TC .)
• I N S T R U C T I O N E X E C UT I O N :
F E TC H ( I N S T R U C T I O N F R O M M E M O RY - >
D E C O D E ( F R O M B I N A RY B I T PATT E R N ) - >
E X E C UT E ( U P D AT E F LA G S ) - >
S TO R E ( I F A N Y O U T P U T O P E R A N D )
PROGRAM EXECUTION
• OS LOADS A PROGRAM INTO MEMORY
• OS EXECUTES THE PROGRAM’ S FIRST INSTRUCTION (ENTRY
POINT)
• FROM HERE THE PROGRAM RUNS BY ITSELF
• WHEN THE PROGRAM ENDS THE OS REMOVES IT FROM
MEMORY
CPU OPERATION MODES
• PROTECTED MODE //NO DIRECT ACCESS TO SYSTEM
MEMORY, EACH PROGRAM HAS 2 GB ADDRESS SPACE
• REAL-ADDRESS MODE //DIRECT ACCESS TO SYSTEM
MEMORY, EACH PROGRAM HAS 1 MB ADDRESS SPACE
• VIRTUAL-8086 MODE //CPU SWITCHING FROM PROTECTED
TO REAL MODE
• SYSTEM MANAGEMENT MODE //USED BY SYSTEM FIRMWARE
REGISTERS
• GENERAL PURPOSE REGISTERS –
E A X / / A C C U M U L A T O R R E G I S T E R - H O L D S D A T A
E C X / / C O U N T E R R E G I S T E R - L O O P C O U N T E R
E D X / / D A T A R E G I S T E R - H O L D S D A T A
E B X / / B A S E R E G I S T E R - P O I N T E R T O D A T A
E S I / / S O U R C E I N D E X - P O I N T E R T O S O U R C E S T R E A M
E D I / / D E S T I N A T I O N I N D E X - P O I N T E R T O D E S T I N A T I O N S T R E A M
E B P / / B A S E P O I N T E R - P O I N T E R T O B A S E O F T H E S T A C K
E S P / / S T A C K P O I N T E R - P O I N T E R T O T O P O F T H E S T A C K
CONT.
• SEGMENT REGISTERS –
C S / / C O D E S E G M E N T - P O I N T E R T O S T A R T I N G A D D R E S S O F P R O G R A M
D S / / D A T A S E G M E N T - P O I N T E R T O S T A R T I N G A D D R E S S O F P R O G R A M D A T A
S S / / S T A C K S E G M E N T - D E F I N E S S T A C K A R E A
E S / / E X T R A S E G M E N T - P O I N T E R T O D E S T I N A T I O N
F S / / G E N E R A L P U R P O S E S E G M E N T R E G I S T E R
G S / / G E N E R A L P U R P O S E S E G M E N T R E G I S T E R
INSTRUCTION POINTER
• EIP //POINTER TO NEXT INSTRUCTION
NOTE: SYSTEM SECURITY IS ALL AB OUT CONTROLLING THE EIP REGISTER – DIRECTLY/IN -
DIRECTLY TO CAUSE ABNORMAL CODE EXECUTION.
EFLAGS
• A 32-BIT REGISTER STORES RESULTS OF A CERTAIN OPERATION IN THE C PU
0-BIT //CARRY FLAG -IF AN ARITHMETIC OPERATION CAUSED CARRY/B ORR OW
2-BIT //PARITY FLAG -SET IF NUMBER OF BITS IN LSB IS EVEN
4-BIT //ADJUST FLAG -IF A CARRY OCCURS FROM LOWER NIBBLE
6-BIT //ZERO FLAG -SET IF RESULT OF AN OPERATION IS ZERO
7-BIT //SIGN FLAG -SET IF RESULT OF AN OPERATION IS NEGATIVE
8-BIT //TRAP FLAG -SET IF STEP -BY-STEP DEBUGGING
CONT.
9 - B I T / / I N T E R R U P T I O N F L A G - S E T I F I N T E R R U P T S A R E E N A B L E D
1 0 - B I T / / D I R E C T I O N F L A G - I F S E T R E A D I N G M E M O R Y B A C K WA R D S
1 1 - B I T / / O V E R F L O W F L A G - I F A N O U T P U T I S L A R G E R F O R A R E G I S T E R TO H O L D
1 2 - 1 3 - B I T / / I / O P R I V I L E G E L E V E L F I E L D S - I / O P R I V I L E G E L E V E L O F C U R R E N T P R O C E S S
1 4 - B I T / / N E S T E D TA S K F L A G - S E T I F C U R R E N T P R O C E S S I S L I N K E D TO T H E N E X T P R O C E S S
1 6 - B I T / / R E S U M E F L A G - I F S E T, R E S P O N D TO D E B U G E X C E P T I O N S
1 7 - B I T / / V I RT U A L- 8 0 8 6 M O D E - S E T I F I N 8 0 8 6 C O M PA B I T I B I L I TY M O D E
1 8 - B I T / / A L I G N M E N T- F L A G - S E T I F C P U D E T E C T S A N U N -A L I G N E D M E M O R Y O P E R A N D , S TO R I N G
A W O R D I N A N O D D - B Y T E A D D R E S S
CONT.
19-BIT //VIRTUAL INTERRUPT FLAG - SET AF TER HANDLING A PENDING I NTERRUPT
20-BIT //VIRTUAL INTERRUPT PENDING FLAG - SET IF AN INTERRUPT IS PENDING
21-BIT //IDENTIFICATION FLAG -IF SET, CPU SUPPORT CUPID INSTRUCT ION
ALL OTHER BITS ARE RESERVED FOR CPU
MMX REGISTERS
• 8 64 -BIT REGISTERS //THEY ARE LIKE GENERAL PURPOSE REGISTERS
• MM0, MM1, MM2, MM3, MM4, MM5, MM6, MM7
XMM REGISTERS
• 8 128 -BIT REGISTERS //THEY ARE LIKE GENERAL PURPOSE REGISTERS
• XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7
FLOATING-POINT UNIT
• T O B E U S E D F O R F L O A T I N G - P O I N T A R I T H M E T I C
• 8 8 0 - B I T D A T A - R E G I S T E R S - S T 0 , S T 1 , S T 2 , S T 3 , S T 4 , S T 5 , S T 6 , S T 7
• 2 4 8 - B I T P O I N T E R R E G I S T E R S -
F I P ( F P U I N S T R U C T I O N P O I N T E R ) ,
F S C ( F P U D A T A P O I N T E R )
• 3 1 6 - B I T C O N T R O L R E G I S T E R S -
F T A G ( T A G R E G I S T E R )
F C T R L ( C O N T R O L R E G I S T E R )
F S T A T ( S T A T U S R E G I T E R )
• 1 1 1 - B I T O P C O D E R E G I S T E R / / S T O R E S O P C O D E O F T H E L A S T N O N - C O N T R O L I N S T R U C T I O N , L I K E A D D I T I O N , E T C
X86-64 BIT PROCESSORS
• 64-BIT LONG ADDRESSES
• CURRENTLY ONLY LOWER 48 -BITS ARE USED
• HAS TWO MODES – COMPATIBILITY MODE TO RUN 16/32 -BIT OPERANDS AND 64- BIT MODE
TO RUN 64 - BIT OPERANDS
• 16 64 -BIT GENERAL PURPOSE REGISTER- RAX, RBX, RCX, RDX, RDI , RSI , RBP, RSP, R8 -R15
• 64-BIT RFLAGS REGISTER //UPPER 32 -BITS ARE NOT USED, FLAGS WORK SAME AS 32 -BIT
HOW
COMPUTER
WORKS
Q > I encourage the reading to figure
out how typing something in notepad
actually gets displayed on the screen?
BRAVE ARE THOSE WHO COULD MAKE
IT THIS FAR! Next time when we meet,
we’ll start with Assembly
programming using Visual Studio and
MASM Assembler. Bye!
APPLICATION
OS
BIOS
HARDWARE

Assembly Language Tutorials for Windows - 02 x86-64 Architecture

  • 1.
    x86 CPU ARCHITECTURE SANGRAMKESARI RAY <SHANKAR.RAY030@GMAIL.COM>
  • 2.
    CPU DESIGN • CLO C K / / S Y N C H R O N I Z AT I O N F O R O P E R AT I O N S – R E A D I N G F R O M M E M O RY, D O I N G A R I T H M E T I C I N A L U, E TC . • C O N T R O L U N I T • A R I T H M E T I C LO G I C U N I T • B U S ( PA R A L L E L W I R E S A C R O SS T H E C O M P O N E N TS, E TC H E D O N T H E M OT H E R B O A R D / / B E T W E E N C P U A N D M E M O RY, E TC .) • I N S T R U C T I O N E X E C UT I O N : F E TC H ( I N S T R U C T I O N F R O M M E M O RY - > D E C O D E ( F R O M B I N A RY B I T PATT E R N ) - > E X E C UT E ( U P D AT E F LA G S ) - > S TO R E ( I F A N Y O U T P U T O P E R A N D )
  • 3.
    PROGRAM EXECUTION • OSLOADS A PROGRAM INTO MEMORY • OS EXECUTES THE PROGRAM’ S FIRST INSTRUCTION (ENTRY POINT) • FROM HERE THE PROGRAM RUNS BY ITSELF • WHEN THE PROGRAM ENDS THE OS REMOVES IT FROM MEMORY
  • 4.
    CPU OPERATION MODES •PROTECTED MODE //NO DIRECT ACCESS TO SYSTEM MEMORY, EACH PROGRAM HAS 2 GB ADDRESS SPACE • REAL-ADDRESS MODE //DIRECT ACCESS TO SYSTEM MEMORY, EACH PROGRAM HAS 1 MB ADDRESS SPACE • VIRTUAL-8086 MODE //CPU SWITCHING FROM PROTECTED TO REAL MODE • SYSTEM MANAGEMENT MODE //USED BY SYSTEM FIRMWARE
  • 5.
    REGISTERS • GENERAL PURPOSEREGISTERS – E A X / / A C C U M U L A T O R R E G I S T E R - H O L D S D A T A E C X / / C O U N T E R R E G I S T E R - L O O P C O U N T E R E D X / / D A T A R E G I S T E R - H O L D S D A T A E B X / / B A S E R E G I S T E R - P O I N T E R T O D A T A E S I / / S O U R C E I N D E X - P O I N T E R T O S O U R C E S T R E A M E D I / / D E S T I N A T I O N I N D E X - P O I N T E R T O D E S T I N A T I O N S T R E A M E B P / / B A S E P O I N T E R - P O I N T E R T O B A S E O F T H E S T A C K E S P / / S T A C K P O I N T E R - P O I N T E R T O T O P O F T H E S T A C K
  • 6.
    CONT. • SEGMENT REGISTERS– C S / / C O D E S E G M E N T - P O I N T E R T O S T A R T I N G A D D R E S S O F P R O G R A M D S / / D A T A S E G M E N T - P O I N T E R T O S T A R T I N G A D D R E S S O F P R O G R A M D A T A S S / / S T A C K S E G M E N T - D E F I N E S S T A C K A R E A E S / / E X T R A S E G M E N T - P O I N T E R T O D E S T I N A T I O N F S / / G E N E R A L P U R P O S E S E G M E N T R E G I S T E R G S / / G E N E R A L P U R P O S E S E G M E N T R E G I S T E R
  • 7.
    INSTRUCTION POINTER • EIP//POINTER TO NEXT INSTRUCTION NOTE: SYSTEM SECURITY IS ALL AB OUT CONTROLLING THE EIP REGISTER – DIRECTLY/IN - DIRECTLY TO CAUSE ABNORMAL CODE EXECUTION.
  • 8.
    EFLAGS • A 32-BITREGISTER STORES RESULTS OF A CERTAIN OPERATION IN THE C PU 0-BIT //CARRY FLAG -IF AN ARITHMETIC OPERATION CAUSED CARRY/B ORR OW 2-BIT //PARITY FLAG -SET IF NUMBER OF BITS IN LSB IS EVEN 4-BIT //ADJUST FLAG -IF A CARRY OCCURS FROM LOWER NIBBLE 6-BIT //ZERO FLAG -SET IF RESULT OF AN OPERATION IS ZERO 7-BIT //SIGN FLAG -SET IF RESULT OF AN OPERATION IS NEGATIVE 8-BIT //TRAP FLAG -SET IF STEP -BY-STEP DEBUGGING
  • 9.
    CONT. 9 - BI T / / I N T E R R U P T I O N F L A G - S E T I F I N T E R R U P T S A R E E N A B L E D 1 0 - B I T / / D I R E C T I O N F L A G - I F S E T R E A D I N G M E M O R Y B A C K WA R D S 1 1 - B I T / / O V E R F L O W F L A G - I F A N O U T P U T I S L A R G E R F O R A R E G I S T E R TO H O L D 1 2 - 1 3 - B I T / / I / O P R I V I L E G E L E V E L F I E L D S - I / O P R I V I L E G E L E V E L O F C U R R E N T P R O C E S S 1 4 - B I T / / N E S T E D TA S K F L A G - S E T I F C U R R E N T P R O C E S S I S L I N K E D TO T H E N E X T P R O C E S S 1 6 - B I T / / R E S U M E F L A G - I F S E T, R E S P O N D TO D E B U G E X C E P T I O N S 1 7 - B I T / / V I RT U A L- 8 0 8 6 M O D E - S E T I F I N 8 0 8 6 C O M PA B I T I B I L I TY M O D E 1 8 - B I T / / A L I G N M E N T- F L A G - S E T I F C P U D E T E C T S A N U N -A L I G N E D M E M O R Y O P E R A N D , S TO R I N G A W O R D I N A N O D D - B Y T E A D D R E S S
  • 10.
    CONT. 19-BIT //VIRTUAL INTERRUPTFLAG - SET AF TER HANDLING A PENDING I NTERRUPT 20-BIT //VIRTUAL INTERRUPT PENDING FLAG - SET IF AN INTERRUPT IS PENDING 21-BIT //IDENTIFICATION FLAG -IF SET, CPU SUPPORT CUPID INSTRUCT ION ALL OTHER BITS ARE RESERVED FOR CPU
  • 11.
    MMX REGISTERS • 864 -BIT REGISTERS //THEY ARE LIKE GENERAL PURPOSE REGISTERS • MM0, MM1, MM2, MM3, MM4, MM5, MM6, MM7
  • 12.
    XMM REGISTERS • 8128 -BIT REGISTERS //THEY ARE LIKE GENERAL PURPOSE REGISTERS • XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7
  • 13.
    FLOATING-POINT UNIT • TO B E U S E D F O R F L O A T I N G - P O I N T A R I T H M E T I C • 8 8 0 - B I T D A T A - R E G I S T E R S - S T 0 , S T 1 , S T 2 , S T 3 , S T 4 , S T 5 , S T 6 , S T 7 • 2 4 8 - B I T P O I N T E R R E G I S T E R S - F I P ( F P U I N S T R U C T I O N P O I N T E R ) , F S C ( F P U D A T A P O I N T E R ) • 3 1 6 - B I T C O N T R O L R E G I S T E R S - F T A G ( T A G R E G I S T E R ) F C T R L ( C O N T R O L R E G I S T E R ) F S T A T ( S T A T U S R E G I T E R ) • 1 1 1 - B I T O P C O D E R E G I S T E R / / S T O R E S O P C O D E O F T H E L A S T N O N - C O N T R O L I N S T R U C T I O N , L I K E A D D I T I O N , E T C
  • 14.
    X86-64 BIT PROCESSORS •64-BIT LONG ADDRESSES • CURRENTLY ONLY LOWER 48 -BITS ARE USED • HAS TWO MODES – COMPATIBILITY MODE TO RUN 16/32 -BIT OPERANDS AND 64- BIT MODE TO RUN 64 - BIT OPERANDS • 16 64 -BIT GENERAL PURPOSE REGISTER- RAX, RBX, RCX, RDX, RDI , RSI , RBP, RSP, R8 -R15 • 64-BIT RFLAGS REGISTER //UPPER 32 -BITS ARE NOT USED, FLAGS WORK SAME AS 32 -BIT
  • 15.
    HOW COMPUTER WORKS Q > Iencourage the reading to figure out how typing something in notepad actually gets displayed on the screen? BRAVE ARE THOSE WHO COULD MAKE IT THIS FAR! Next time when we meet, we’ll start with Assembly programming using Visual Studio and MASM Assembler. Bye! APPLICATION OS BIOS HARDWARE