PC리버싱/기타

어셈블리어 기원및 뜻정리

Lamed_Dhhd 2020. 6. 27. 10:25
반응형

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 exten
d.

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