Assembly & Computer Architecture

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/60

flashcard set

Earn XP

Description and Tags

Learn CPU, Memory, and Instructions

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

61 Terms

1
New cards

CPU (Central Processing Unit)

Executes instructions; performs arithmetic, logic, control, and I/O operations

2
New cards

Register

small, fast storage inside the CPU used to hold data or addresses during computation

3
New cards

Memory (RAM)

volatile storage for program data and instructions while running

4
New cards

Instruction

a binary operation telling the CPU what to do (e.g., ADD, MOV, JMP)

5
New cards

Instruction Set Architecture (ISA)

defines CPU instructions, registers, data types, and memory model (e.g., x86, ARM)

6
New cards

Opcode

the part of an instruction specifying the operation to perform

7
New cards

Operands

the data or addresses used by an instruction

8
New cards

Assembler

program that converts assembly code into machine code (object files)

9
New cards

Linker

combines multiple object files and libraries into a single executable

10
New cards

Loader

loads executable code into memory and prepares it for execution

11
New cards

Disassembler

converts binary machine code back into readable assembly

12
New cards

Compiler

translates high-level language (C, C++) into assembly or machine code

13
New cards

Debugger

tool for running code step-by-step, examining registers, memory, and instructions

14
New cards

MOV

copies data from one location/register to another

15
New cards

CMP

compares two values by subtracting; result affects flags but doesn’t store a value

16
New cards

JMP/JE/JNE/JL/JG

jumps to a different instruction (conditional or unconditional branch)

17
New cards

PUSH/POP

adds or removes data from the top of the stack (updates stack pointer)

18
New cards

CALL/RET

used for function calls and returns; pushes return address then pops it

19
New cards

LEA (Load Effective Address)

loads the address of a memory operand into a register

20
New cards

NOP

“no operation” → instruction that does nothing (often for padding)

21
New cards

FLAGS Register (EFLAGS/RFLAGS)

holds condition bits (Zero, Sign, Carry, Overflow) for conditional operations

22
New cards

Stack

memory region growing downward; stores local variables, return addresses, and saved registers

23
New cards

Stack Frame

portion of stack for a single function’s locals and saved context

24
New cards

EBP/RBP

points to the start of the current stack frame (base pointer)

25
New cards

ESP/RSP

points to the top of the current stack (stack pointer)

26
New cards

EIP/RIP

holds the address of the next instruction to execute (instruction pointer)

27
New cards

Endianess

byte order of data in memory (little endian = least significant byte first, used by x86)

28
New cards

Register File

the collection of all general-purpose, segment, and special purpose registers in the CPU

29
New cards

EAX

accumulator / return value

30
New cards

EBX

base

31
New cards

ECX

loop control

32
New cards

SI

source index

33
New cards

DI

destination index

34
New cards

SP

stack pointer

35
New cards

BP

base pointer

36
New cards

Control Flag

controls the operation of a processor

37
New cards

Direction Flag

determines the direction of data moving in memory

38
New cards

Status Flag

reflects the outcome of arithmetic and logical operations by the CPU

39
New cards

Zero Flag

indicates the result of arithmetic (logical) operations

40
New cards

What does ASCII stand for?

american standard code for information interchange

41
New cards

Virtual Machine

a software program that emulates the functions of some other physical or virtual computer

42
New cards

Effective Address

the computed memory address from a combination of base, index, scale, and displacement (e.g., [ebx + esi*4 + 8])

43
New cards

Addressing Modes

ways to reference data: immediate (mov eax, 5), register (mov eax, ebx), or memory (mov eax [ebx+4])

44
New cards

Immediate Operand

a constant encoded directly in the instruction (e.g., mov eax, 10)

45
New cards

Direct Addressing

refers to a specific memory address (e.g., mov eax, [0×12345678])

46
New cards

Indirect Addressing

accessing memory via a register pointer (e.g., mov eax, [ebx])

47
New cards

Displacement

a fixed offset added to an address ([ebp - 0×4])

48
New cards

Byte

8-bit

49
New cards

Bit

boolean variable indicating true (1) or false (0)

50
New cards

Word

16-bit

51
New cards

Dword (Double Word)

32-bit

52
New cards

Qword (Quad Word)

64-bit

53
New cards

SECTION / SEGMENT

defines part of a program (e.g., .text, .data, .bss)

54
New cards

ZF (Zero Flag)

set if result of operation is zero

55
New cards

SF (Sign Flag)

set if result is negative (sign bit set)

56
New cards

CF (Carry Flag)

set if addition/subtraction produces a carry/borrow

57
New cards

OF (Overflow Flag)

set if signed arithmetic overflows

58
New cards

PF (Parity Flag)

set if number of 1 bits in result is even

59
New cards

AF (Adjust Flag)

used in BCD (Binary Coded Decimal) arithmetic

60
New cards

Offset

distance or displacement (in bytes) from a known base address in memory. Tells the CPU how far to move from a starting point to find a specific variable, instruction, or data value

61
New cards

Heap

dynamic memory that contains variables and data created and destroyed during program execution