Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programmer’s perspective
Internal structure and basic
operation of microprocessor
Address bus
ALU Register
Section
Data bus
Control unit
Control bus
2
Assembly/Machine Code View
CPU Memory
Addresses
Registers
Data Code
PC Data
Condition Instructions Stack
Codes
Programmer-Visible State
– PC: Program counter – Memory
• Address of next instruction • Byte addressable array
• Called “RIP” (x86-64) • Code and user data
– Register file • Stack to support procedures
• Heavily used program data
– Condition codes
• Store status information about most
recent arithmetic or logical operation
• Used for conditional branching
Basic Program Execution Registers
Registers are high speed memory inside the CPU
Eight 32-bit general-purpose registers
Six 16-bit segment registers
Status Flags (EFLAGS) and Instruction Pointer (EIP)
AH AL 8 bits + 8 bits
AL = lower 8 bits
AH = upper 8 bits AX 16 bits
Status Flags
Status of arithmetic and logical operations
Control and System flags
Control the CPU operation
Programs can set and clear individual bits in the EFLAGS register
Status Flags
Carry Flag
Set when unsigned arithmetic result is out of range
Also can be set, inverted and cleared with the STC, CLC or
CMC instructions respectively.
Overflow Flag
Set when signed arithmetic result is out of range
Sign Flag
Copy of sign bit, set when result is negative
Status Flags
Zero Flag
Set when result is zero
Auxiliary Carry Flag
Set when there is a carry from bit 3 to bit 4
Parity Flag
Set when parity is even
Least-significant byte in result contains even number of 1s
System Flags
TF (Trace) Flag
On being set it allows single-step through programs.
Executes exactly one instruction and generates an
internal exception 1 (debug fault)
IF (Interrupt) Flag
This flag can be set and cleared using the STI and
CLI instructions respectively. Helps enable/disable
interrupts.
DF – Direction Flag
Specifically for string instructions. DF = 1 increments
ESI and EDI, while DF = 0 decrements the same. Set
and cleared by STD and CLD instructions
System Flags
VM – Virtual 8086 mode flag
When it is set, the x86 processor is basically
converted into a high-speed 8086 processor.
12