There are two special registers in Intel assembly and they are as follows:
- rip/eip: This is an instruction pointer that points to the next instruction to be executed. It cannot be accessed directly but there are special instructions to access it.
- rflags/eflags/flags: This register contains the current state of the processor. Its flags are affected by the arithmetic and logical instructions including comparison instructions such as cmp and test, and it's used with conditional jumps and other instructions as well. Here are the most common flags:
- Carry flag (CF): This is when an arithmetic operation goes out of bounds; look at the following operation:
- Carry flag (CF): This is when an arithmetic operation goes out of bounds; look at the following operation:
mov al, FFh ;al = 0xFF & CF = 0
add al, 1 ;al = 0 & CF = 1
-
- Zero flag (ZF): This flag is set when the arithmetic or a logical operation's result is zero. This could also be set with compare instructions.
- Sign flag (SF): This flag indicates that the result of the operation is negative.
- Overflow flag...