slae x32 intro Flashcards
What are the computer building blocks?
CPU, Memory, IO devices
What components make up the CPU?
Control Unit, Execution Unit, Registers, Flags
What does the Control Unit handle?
Retrieve / Decode instructions / Store data in memory
Execution Unit?
Actual execution of instruction happens
What do the registers handle?
Internal memory locations used as “variables”
What are Flags?
Used to indicate various “event” when execution is happening
What are the Logical IA-32 Registers?
General Purpose, Segment, Flags and EIP, Floating Point Unit Registers, MMX Registers, XMM Registers
What are the first 4 General Purpose Registers?
EAX, EBX, ECX, EDX
What are the second 4 General Purpose Registers?
ESP, EBP, ESI, EDI
EAX common functionality?
Accumulator Register is used for storing operands and the result data
EBX common functionality?
Base Register - points to data
ECX common functionality?
Count Register - Loop operations
EDX common functionality?
Data Register - I/O Pointer
ESI and EDI common functionality?
Data Pointer Registers for memory operations
ESP common functionality?
Stack Pointer Register
EBP common functionality?
Stack Data Pointer Register
What 6 components make up the Segment Registers?
CS (code), DS (data), SS (stack), ES (data), FS (data), and GS (data)
What is FPU?
Floating Point Unit - handles floating point numbers. 80 bits wide
What is SIMD?
Single Instruction Multiple Data
What components make up SIMD?
MMX, SSE, SSE2, SSE3
What is the structure of MMX
Carved out of FPU and makes up the first lower 64 bits
What is the structure of XXM
128 bits in 7, XMM0-XXM7
What are the 3 CPU modes for IA-32?
Real Mode, Protected Mode*, System Management Mode
What re the 3 Memory Models?
Flat Model*, Segmented Model, Real-Address Mode Model
What two components make up the Virtual Memory Model?
Kernel Space (1 GB) and User Space (3 GB)
What six components make up the User Space portion of the Virtual Memory Model?
Stack, Share Libs + Mappings, Heap, BSS, Data, and Text
What is the Heap memory used for?
Dynamic Memory
What is the BSS memory used for?
Uninitialized Data
What is the Data memory used for?
Initialized Data
What is the Text memory used for?
Program Code
What is the Stack memory used for?
Function Args + Local Variables
What are three methods to view process organization?
/proc/pid/maps, pmap, gdb