Basics Flashcards

1
Q

x86::General Purpose Registers::EAX

A

Accumulator register - primarily used for common calculations, assigned one-byte opcodes for efficient calculations, also used for storing function return values

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

x86::General Purpose Registers::EBX

A

No special purpose in 32-bit architecture, often used as a catch-all for available storage

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

x86::General Purpose Registers::ECX

A

Counter register - used primarily for loop and counter iteration, can also store data

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

x86::General Purpose Registers::EDX

A

Data register - similar to EAX in purpose, used for mathematical operations often in conjunction with EAX, or to store function variables

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

x86::General Purpose Registers::ESI

A

Source index - often used to store the pointer to a read location

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

x86::General Purpose Registers::EDI

A

Destination index - Designed to hold storage pointers for functions, can be used to store data

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

x86::General Purpose Registers::EBP

A

Base pointer - Maintains pointer to base of stack, often used to locate objects in the stack by specifying base + offset

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

x86::General Purpose Registers::ESP

A

Stack pointer - Maintains pointer to top of stack, decrements/increments as objects are moved around, rarely ever used for any other purpose

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

x86::Special Purpose Registers::EIP

A

Instruction pointer - Maintains pointer to next instruction

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

x86::Segment Registers

A

Products of old addressing schemes and memory models, still used for backwards compatibility, other functions, and storage

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

x86::EFLAGS Register

A

Comprised of a series of flags that represent Boolean values, can be used for if/when logic, conditional jumps, etc

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

x86::Assembly::Instructions::ADD/SUB

A

Add or subtract two operands, store the result in the first operand

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

x86::Assembly::Instructions::XOR EAX, EAX

A

Exclusive or - in this case since the destination and source registers are the same, EAX will be zeroed out

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

x86::Assembly::Instructions::INC/DEC

A

Increment or decrement an operand by one

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

x86::Assembly::Instructions::CMP

A

Compare the value of two operands and set the appropriate EFLAGS value

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

x86::Assembly::Instructions::JMP

A

Jump, also includes conditional jump instructions such as je, jz. Used to move around within the execution flow/instruction set.

17
Q

x86::Assembly::Instructions::MOV EAX, [ebx]

What do the brackets signify?

A

Brackets indicate that the value stored at the memory address contained within EBX should be moved into EAX, as opposed to the contents of EBX itself

18
Q

Decimal 23
Hex __
Binary 00010111

A

0x18