NEG : 2의 보수 (부호 반전)
NOT : 1의 보수 (비트 반전)
MUL : AX와 오퍼랜드 곱셈 -> AX또는 DX:AX에 저장
IMUL <- 부호 o
DIV : AX를 오퍼랜드로 나눔 -> 몫:AL, 나머지:AH
DX:AX를 '' -> 몫:AX, 나머지:DX
CBW : AL -> AX 확장 ex) eax에 0x12345678가 있으면 -> 0x12340078으로 됨
CWD : AX -> DX:AX 확장
SHL/SAL : 왼쪽 shift
SHR/SAR : 오른쪽 shift (SAR은 산술 shift로 최상위 비트를 유지한다고 한다.)
ROL/RCL : 회전 왼쪽 shift
ROR/RCR : 회전 오른쪽 shift
PUSHAD : 레지스터 내용을 스택에 push (EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI 순서)
PUSHFD : 플래그 레지스터 내용을 스택에 push
REP : 뒤의 스트링 명령을 (E)CX가 0이 될때까지 반복. (E)CX는 1씩 감소.
ex) rep movs byte ptr [edi], byte ptr [esi] <- 문자열 esi값을 edi에 복사
SCAS : 크기에 맞게 ax와 비교.
repne scas byte ptr [edi] <- al과 비교하여 같지 않으면 빠져나감
STOS : 크기에 맞게 ax를 edi가 가리키는 주소에 저장
ex) rep stos byte ptr [EDI]
LODS : SI내용을 AL에 로드.
'Reversing > Reversing' 카테고리의 다른 글
함수 호출 규약 (1) | 2012.10.16 |
---|---|
Windbg 명령어 요약 (0) | 2012.10.13 |
어셈블리어의 주소 지정 방식 (0) | 2012.09.10 |
C코드->어셈코드 분석 [if, for, while] (0) | 2012.07.28 |
upx 언패킹하기 - MUP(Manual UnPacking) (4) | 2012.07.12 |