Registers Flashcards

(23 cards)

1
Q

EAX

A

It’s called the accumulator register because it’s the primary register used for common calculations (such as ADD and SUB). While other registers can be used for calculations, EAX has been given preferential status by assigning it more efficient, one-byte opcodes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

AX

A

The least significant 16 bits of EAX which can be further broken down into AH (the 8 most significant bits of AX) and AL (the 8 least significant bits).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

AH

A

The 8 most significant bits of AX.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

AL

A

The 8 least significant bits of AX.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

EBX

A

The Base Register. In 32-bit architecture, EBX doesn’t really have a special purpose so just think of it as a catch-all for available storage. Like EAX, it can be referenced in whole (EBX) or in part (BX, BH, BL).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

ECX

A

The Counter Register. As its name implies, the counter (or count) register is frequently used as a loop and function repetition counter, though it can also be used to store any data. Like EAX, it can be referenced in whole (ECX) or in part (CX, CH, CL).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

EDX

A

The Data Register. EDX is kind of like a partner register to EAX. It’s often used in mathematical operations like division and multiplication to deal with overflow where the most significant bits would be stored in EDX and the least significant in EAX. It is also commonly used for storing function variables. Like EAX, it can be referenced in whole (EDX) or in part (DX, DH, DL).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

ESI

A

The Source Index. The counterpart to EDI, ESI is often used to store the pointer to a read location. For example, if a function is designed to read a string, ESI would hold the pointer to the location of that string.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

EDI

A

The Destination Index. Though it can be (and is) used for general data storage, EDI was primarily designed to store the storage pointers of functions, such as the write address of a string operation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

EBP

A

The Base Pointer. EBP is used to keep track of the base/bottom of the stack. It is often used to reference variables located on the stack by using an offset to the current value of EBP, though if parameters are only referenced by register, you may choose to use EBP for general use purposes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

ESP

A

The Stack Pointer. ESP is used to track the top of the stack. As items are moved to and from the stack ESP increments/decrements accordingly. Of all of the general purpose registers, ESP is rarely/never used for anything other than it’s intended purpose.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

EIP

A

The Instruction Pointer. Not a general purpose register, but fitting to cover here, EIP points to the memory address of the next instruction to be executed by the CPU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

EFLAGS

A

The EFLAGS register is comprised of a series of flags that represent Boolean values resulting from calculations and comparisons and can be used to determine when/if to take conditional jumps

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

[EBX]

A

Refers to the value stored at the memory address in EBX. When you see a value in brackets such as ADD DWORD PTR [X] or MOV eax, [ebx] it is referring to the value stored at memory address X. Relevant size keywords: BYTE = 1 byte, WORD = 2 bytes, DWORD = 4 bytes .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

SI/DI/SP/BP

A

The least significant 16 bits of ESI/EDI/ESP/EBP. Unlike the X-registers these can’t be broken down into 8-bit segments.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

CS

A

16-bit code segment register

17
Q

DS

A

16-bit data segment register

18
Q

SS

A

16-bit stack segment register

19
Q

ES/FS/GS

A

16-bit data segment registers

20
Q

ST0 to ST7

A

80-bit floating point registers.

21
Q

Extensions

A

Intel-specific features that use the MMX and XMM registers. MMX, SSE, SSE2, SSE3, etc.

22
Q

MMX

A

64-bit registers (mm0 to MM7) carved out of the 80-bit ST0 to ST7 floating point registers. Lower 64 bits of the ST registers.

23
Q

XMM

A

128-bit registers (XMM0 through XMM7).