There's a mov instruction, which copies a value from src to dest. This instruction has multiple forms, as we can see in this table:
Instruction |
Structure |
Description |
mov |
mov dest, src |
dest = src |
movsx/movzx |
movsx/movzx dest , src |
src is smaller than dest (src is 16-bits and dest is 32-bits) |
Other instructions related to stack are like this:
Instruction |
Structure |
Description |
push/pop |
push/pop dest |
Pushes the value to the top of the stack (esp = esp - 4)/ pulls the value out of the stack (esp = esp + 4) |
pushad/popad |
pushad/popad |
Saves all registers to the stack/pulls out all registers from the stack (in x86 only) |
For string manipulation, they are like this:
Instruction | Structure | Description |
lodsb/lodsw/lodsd/lodsq | lodsb/lodsw/lodsd/lodsq | Loads a byte, 2 bytes, 4 bytes, or 8 bytes from the address rsi/esi... |