Assembly Operands Flashcards
ADD/SUB
add or subtract two operands, storing the result in the first operand. These can be registers, memory locations (limit of one) or constants. For example, ADD EAX, 10 means add 10 to the value of EAX and store the result in EAX
XOR
Performing an ‘exclusive or’ of a register with itself sets its value to zero; an easy way of clearing the contents of a register
INC/DEC
increment or decrement the value of the operand by one
CMP
compare the value of two operands (register/memory address/constant) and set the appropriate EFLAGS value.
JMP
as the name implies these instructions allow you to jump to another location in the execution flow/instruction set. The JMP instruction simply jumps to a location whereas the conditional jumps (je, jz, etc) are taken only if certain criteria are met (using the EFLAGS register values mentioned earlier). For example, you might compare the values of two registers and jump to a location if they are both equal (uses je instruction and zero flag (zf) = 1).
MOV
Move a value from a register or memory into another register
MUL/DIV
Multiply and divide unsigned operands
IMUL/IDIV
Multiply and divide signed operands
CALL
Call a function
RET
Return back to a CALL address
PUSH
Set data in a register
POP
Remove data from a register