- 2.1 Information Storage
- Convertion between decimal, binary and hex values
- Byte ordering (Big endian and little endian)
- Bit-level operations (&, |, ~, ^)
- Logical operations (||, &&, !)
- Shift operations (logical shift, arithmetic shift), arithmetic right shifts for signed data
- 2.2 Integer Representations
- Unsigned encoding and signed encoding (two’s complement)
- Maximum value, minimum value
- Conversion between signed and unsigned
- Explict convertion, implict convertion
- Expanding and Truncating numbers
- From long to int
- From int to long
- 2.3 Integer Arithmetic
- Unsigned/Signed addition (Overflow, underflow)
- Two’s complement negation
- Unsigned/Signed multiplication (Overflow)
- Dividing: out of scope
- 2.4: Out of Scope
- 3.1: Out of Scope
- 3.2 Program Encodings
- 3.3 Data Formats
- 3.4 Accessing Information
- Registers, Operand forms
- Data Movement Instructions
- Pushing and Popping Stack Data
- 3.5 Arithmetic and Logical Operations
- Load Effective Address (
lea
)
- Others
- 3.6 Control
- Condition Codes
- Accessing the Condition Codes
- Conditional Control
- Conditional Move
- Loop
- Switch statements
- 3.7 Procedures
- The Run-Time Stack
- Control Transfer
call
: Push return address to the stack
ret
: Pop return address from the stack
- Data Transfer (argument, return value)
- Local Storage on the Stack
- Local Storage in Registers
- Caller saved, callee saved
- Recursive Procedures
- 3.8 Array Allocation and Access
- 3.9 Heterogeneous Data Structures
- Structures
- Unions: Out of scope
- Data Alignment
- 3.10 Combining Control and Data in Machine-Level Programs
- Buffer overflow
- Code injection attack
- Return-oriented programming
- Protection
- 3.11 Floating-Point Code: Out of scope
- 6.1 Storage Technologies
- DRAM, SRAM
- Disk Storage, Solid State Disks, Storage Technology Trends: Out of scope
- 6.2 Locality
- Temporal locality, spatial locality
- 6.3 The Memory Hierarchy
- 6.4 Cache Memories
- Cache organization
- The process of cache read
- Cache miss
- Cache hit
- Cache eviction
- Line Replacement on Misses
- Cache Associativity
- Cache write
- Write hit
- write through, write back
- Write miss
- write allocate, write non-allocate
- 6.5 Writing Cache-Friendly Code
- 6.6 Putting It Together: The Impact of Caches on Program Performance
- The Memory Mountain: Out-of-scope
- Rearranging Loops to Increase Spatial Locality