Some of the unconditional redirections are as follows:
Instruction | Structure | Description |
jmp | jmp <relative address> jmp DWORD/QWORD ptr [Absolute Address] |
The relative address is calculated from the start of the next instruction after jmp to the destination |
call |
call <relative address> |
Same as jmp but it saves the return address in the stack |
ret/retn | ret imm | Pulls the return address from the stack, for some calling conventions cleans the stack from the pushed arguments, and jumps to that address |
Some of the conditional redirections are as follows:
Instruction | Structure | Description |
jnz/jz/jb/ja | jz/jnz <relative address> | Similar to jmp, but jumps based on a condition |
loop | loop <relative address> | Similar to jmp, but it decrements rcx/ecx and jumps if it didn't reach zero (uses rcx/ecx as a loop counter) |
rep | rep opcode dest, src (if needed) | rep is a prefix that is used... |