MOV Move data between general-purpose registers; move data between memory and general- purpose or segment registers; move immediates to general-purpose registers.
CMOVE/CMOVZ Conditional move if equal/Conditional move if zero.
CMOVNE/CMOVNZ Conditional move if not equal/Conditional move if not zero.
CMOVA/CMOVNBE Conditional move if above/Conditional move if not below or equal.
CMOVAE/CMOVNB Conditional move if above or equal/Conditional move if not below. CMOVB/CMOVNAE Conditional move if below/Conditional move if not above or equal. CMOVBE/CMOVNA Conditional move if below or equal/Conditional move if not above. CMOVG/CMOVNLE Conditional move if greater/Conditional move if not less or equal. CMOVGE/CMOVNL Conditional move if greater or equal/Conditional move if not less. CMOVL/CMOVNGE Conditional move if less/Conditional move if not greater or equal. CMOVLE/CMOVNG Conditional move if less or equal/Conditional move if not greater. CMOVC Conditional move if carry.
CMOVNC Conditional move if not carry.
CMOVO Conditional move if overflow.
CMOVNO Conditional move if not overflow.
CMOVS Conditional move if sign (negative).
CMOVNS Conditional move if not sign (non-negative).
CMOVP/CMOVPE Conditional move if parity/Conditional move if parity even.
CMOVNP/CMOVPO Conditional move if not parity/Conditional move if parity odd.
XCHG Exchange.
BSWAP Byte swap.
XADD Exchange and add.
CMPXCHG Compare and exchange. CMPXCHG8B Compare and exchange 8 bytes.
PUSH Push onto stack.
POP Pop off of stack.
PUSHA/PUSHAD
Push general-purpose registers onto stack.
POPA/POPAD Pop general-purpose registers from stack.
CWD/CDQ Convert word to doubleword/Convert doubleword to quadword.
CBW/CWDE Convert byte to word/Convert word to doubleword in EAX register.
MOVSX Move and sign extend.
ADCX Unsigned integer add with carry.
ADOX Unsigned integer add with overflow.
ADD Integer add.
ADC Add with carry.
SUB Subtract.
SBB Subtract with borrow.
IMUL Signed multiply.
MUL Unsigned multiply.
IDIV Signed divide.
DIV Unsigned divide.
INC Increment.
DEC Decrement.
NEG Negate.
CMP Compare.
DAA Decimal adjust after addition.
DAS Decimal adjust after subtraction.
AAA ASCII adjust after addition.
AAS ASCII adjust after subtraction.
AAM ASCII adjust after multiplication.
AAD ASCII adjust before division.
DAA Decimal adjust after addition.
DAS Decimal adjust after subtraction.
AAA ASCII adjust after addition.
AAS ASCII adjust after subtraction.
AAM ASCII adjust after multiplication.
AAD ASCII adjust before division.
SAR Shift arithmetic right.
SHR Shift logical right.
SAL/SHL Shift arithmetic left/Shift logical left.
SHRD Shift right double.
SHLD Shift left double.
ROR Rotate right.
ROL Rotate left.
RCR Rotate through carry right.
RCL Rotate through carry left.
BT Bit test.
BTS Bit test and set.
BTR Bit test and reset.
BTC Bit test and complement.
BSF Bit scan forward.
BSR Bit scan reverse.
SETE/SETZ Set byte if equal/Set byte if zero.
SETNE/SETNZ Set byte if not equal/Set byte if not zero.
SETA/SETNBE Set byte if above/Set byte if not below or equal.
SETAE/SETNB/SETNC Set byte if above or equal/Set byte if not below/Set byte if not carry. SETB/SETNAE/SETC Set byte if below/Set byte if not above or equal/Set byte if carry.
SETBE/SETNA Set byte if below or equal/Set byte if not above. SETG/SETNLE Set byte if greater/Set byte if not less or equal.
SETGE/SETNL Set byte if greater or equal/Set byte if not less.
SETL/SETNGE Set byte if less/Set byte if not greater or equal.
SETLE/SETNG Set byte if less or equal/Set byte if not greater.
SETS Set byte if sign (negative).
SETNS Set byte if not sign (non-negative).
SETO Set byte if overflow.
SETNO Set byte if not overflow.
SETPE/SETP Set byte if parity even/Set byte if parity.
SETPO/SETNP Set byte if parity odd/Set byte if not parity.
TEST Logical compare.
CRC321 Provides hardware acceleration to calculate cyclic redundancy checks for fast and efficient implementation of data integrity protocols.
POPCNT2 This instruction calculates of number of bits set to 1 in the second operand (source) and returns the count in the first operand (a destination register).
JMP Jump.
JE/JZ Jump if equal/Jump if zero.
JNE/JNZ Jump if not equal/Jump if not zero.
JA/JNBE Jump if above/Jump if not below or equal.
JAE/JNB Jump if above or equal/Jump if not below.
JB/JNAE Jump if below/Jump if not above or equal.
JBE/JNA Jump if below or equal/Jump if not above.
JG/JNLE Jump if greater/Jump if not less or equal.
JGE/JNL Jump if greater or equal/Jump if not less.
JL/JNGE Jump if less/Jump if not greater or equal.
JLE/JNG Jump if less or equal/Jump if not greater.
JC Jump if carry.
JNC Jump if not carry.
JO Jump if overflow.
JNO Jump if not overflow.
JS Jump if sign (negative).
JNS Jump if not sign (non-negative).
JPO/JNP Jump if parity odd/Jump if not parity.
JPE/JP Jump if parity even/Jump if parity.
JCXZ/JECXZ Jump register CX zero/Jump register ECX zero.
LOOP Loop with ECX counter.
LOOPZ/LOOPE Loop with ECX and zero/Loop with ECX and equal.
LOOPNZ/LOOPNE Loop with ECX and not zero/Loop with ECX and not equal.
CALL Call procedure.
RET Return.
IRET Return from interrupt.
INT Software interrupt.
INTO Interrupt on overflow.
BOUND Detect value out of range.
ENTER High-level procedure entry.
LEAVE High-level procedure exit.
MOVS/MOVSB Move string/Move byte string.
MOVS/MOVSW Move string/Move word string.
MOVS/MOVSD Move string/Move doubleword string.
CMPS/CMPSB Compare string/Compare byte string.
CMPS/CMPSW Compare string/Compare word string.
CMPS/CMPSD Compare string/Compare doubleword string.
SCAS/SCASB Scan string/Scan byte string.
SCAS/SCASW Scan string/Scan word string.
SCAS/SCASD Scan string/Scan doubleword string.
LODS/LODSB Load string/Load byte string.
LODS/LODSW Load string/Load word string.
LODS/LODSD Load string/Load doubleword string.
STOS/STOSB Store string/Store byte string.
STOS/STOSW Store string/Store word string.
STOS/STOSD Store string/Store doubleword string.
REP Repeat while ECX not zero.
REPE/REPZ Repeat while equal/Repeat while zero.
REPNE/REPNZ Repeat while not equal/Repeat while not zero.
STC Set carry flag.
CLC Clear the carry flag.
CMC Complement the carry flag.
CLD Clear the direction flag.
STD Set direction flag.
LAHF Load flags into AH register.
SAHF Store AH register into flags.
PUSHF/PUSHFD Push EFLAGS onto stack.
POPF/POPFD Pop EFLAGS from stack.
STI Set interrupt flag.
CLI Clear the interrupt flag.
LEA Load effective address.
NOP No operation.
UD2 Undefined instruction.
XLAT/XLATB Table lookup translation.
CPUID Processor identification.
MOVBE1 Move data after swapping data bytes.
PREFETCHW Prefetch data into cache in anticipation of write.
PREFETCHWT1 Prefetch hint T1 with intent to write.
CLFLUSH Flushes and invalidates a memory operand and its associated cache line from all levels of the processor’s cache hierarchy.
CLFLUSHOPT Flushes and invalidates a memory operand and its associated cache line from all levels of the processor’s cache hierarchy with optimized memory system throughput.
ANDN Bitwise AND of first source with inverted 2nd source operands.
BEXTR Contiguous bitwise extract.
BLSI Extract lowest set bit.
BLSMSK Set all lower bits below first set bit to 1.
BLSR Reset lowest set bit.
BZHI Zero high bits starting from specified bit position.
LZCNT Count the number leading zero bits.
MULX Unsigned multiply without affecting arithmetic flags.
PDEP Parallel deposit of bits using a mask.
PEXT Parallel extraction of bits using a mask.
RORX Rotate right without affecting arithmetic flags.
SARX Shift arithmetic right.
SHLX Shift logic left.
SHRX Shift logic right.
TZCNT Count the number trailing zero bits.
어원 | 어셈블리어 | 어원뜻 | 하는짓 |
and | and | 그리고 | |
or | or | 또는 | |
Logical compare | test | 시험 | |
xor | xor | 베타적 논리합 | |
Negate. | neg | 2의보수 | |
exchange | xchg | 교환하다 | |
compare | cmp | 비교하다 | |
move | mov | 옶기다 | |
move with Zero Extension | movzx | 옶기다 | |
move with Sign Extension | movsz | 옶기다 | |
move source | movs | 소스를 옶기다 | |
Load Effective Address | lea | 주소를 저장하다 | |
Increment | inc | 커지다 | |
Decrement. | dec | 줄어들다 | |
add | add | 더하다 | |
sub | sub | 뺴다 | |
multipliy | mul | 곱하다 | |
Signed multipliy | imul | 부호있는값을 곱하다 | |
divide | div | 나누다 | |
Signed divide | idiv | 부호있는값을 나누다 | |
shift left | shl | 왼쪽시프트연산 | |
shift right | shr | 오른쪽시프트연산 | |
Scan string | scas | 문자열스캔 | |
Store string | stos | 문자열저장 | |
Jump. | jmp | 점프 | |
Call procedure. | call | 함수호출 | |
Return. | ret | 리턴 | |
High-level procedure exit. | leave | 떠나다 | |
Push onto stack. | push | push | |
Push general-purpose registers onto stack. | pushad | 범용레지스터 push | |
Push EFLAGS onto stack. | pushfd | EFLAGS push | |
Repeat while ECX not zero. | rep | 반복 ECX가 0일떄까지 | |
pointer | ptr | 포인터 | |
Convert word to doubleword/Convert doubleword to quadword. | cdq | qword로 바꾼다 | |
Software interrupt. | int | 인터럽트 | |
Set carry flag. | stc | 캐리플래그 셋 | |
Clear the carry flag. | clc | 캐리플래그 클리어 | |
Set direction flag. | std | direction flag 셋 | |
Clear the direction flag. | cld | direction flag 클리어 | |
Set interrupt flag. | sti | inturrupt flag 셋 | |
Clear the interrupt flag. | cli | inturrupt flag 클리어 | |
No operation. | nop | 명령없음 | |
'PC리버싱 > 기타' 카테고리의 다른 글
리버싱 공부순서및 커리쿨렴(주관적) (0) | 2020.07.25 |
---|---|
x64dbg사용법 (0) | 2020.07.14 |
VMprotect(VMP)맛보기후기 (0) | 2020.06.25 |
컴파일러 코드최적화모음 (0) | 2020.06.06 |
Visual Studio 2019 디버거 사용법 정리 (0) | 2020.06.06 |