일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 리눅스
- Web
- 자바
- 명품자바프로그래밍
- 경기대학교
- 리버싱
- SuNiNaTas
- C언어
- 써니나타스
- 석문초등학교
- 암호수학
- java
- 대외활동
- 웹
- ARP Redirect
- 쏙쏙캠프
- hackerschool
- 해커스쿨
- FTZ
- 실습문제
- 파이썬챌린지
- C
- html5
- setCookie
- 피들러
- 파이썬
- Linux
- webhacking.kr
- pythonchallenge
- 웹해킹
- Today
- Total
Hongfluenza
어셈블리 명령어 모음 본문
MOV
데이터를 이동하는 명령어
MOV A,B : [방향 : A←B ] B에서 A로 데이터를 이동
레지스터 ↔ 레지스터 간의 데이터 이동 가능
메모리 주소 ↔ 메모리 주소 간의 데이터 이동 불가능
(메모리와 메모리 사이의 데이터 이동은 MOVS를 이용함)
PUSH
STACK에 값을 넣음
(STACK이란 데이터를 임시적으로 저장했다가 필요할 때 꺼내쓰는 임시 기억장치
쉽게 생각해 밑이 막힌 상자라고 생각하면 쉽다 !
가장 먼저 저장되는 데이터는 가장 마지막에 나옴(LIFO : 후입선출))
4byte만큼 복사함
ESP의 값이 4만큼 줄어들고, 이 위치에 새로운 값이 채워짐
POP
ESP 레지스터가 가리키고 있는 위치의 스택공간에서 4byte만큼을
Destination 피연산자에 복사하고 ESP 레지스터의 값을 4만큼 증가시킴
LEA(Load Effective Address)
주소를 가져오는 명령어
Source 피연산자의 유효 주소를 계산하여 Destination 피연산자에 복사함
간단히 주소를 알아내서 복사하는 명령어
JUMP
Jump Address - 해당 주소로 이동
JE [ Jump If Equal] = JZ [ Jump If Zero ] - Cmp a==b면 이동 [ ZF(Zero Flag)=1 ]
JA [ Jump Above ] - Cmp a>b면 원하는 레이블로 이동
JB [ Jump Below ] - Cmp a<b면 원하는 레이블로 이동
JNE [ Jump if Not Equal ] - Cmp a!=b면 해당 주소로 이동
JAE [ Jump If Above or Equal ] - Cmp a>=b면 해당 주소로 이동
JBE [ Jump If Below or Equal ] - Cmp a<=b면 해당 주소로 이동
INC
INC A [ Increase A ] - A의 값을 1 증가시킴
DEC
DEC A [ Decrease A ] - A의 값을 1 감소시킴
DIV
DIV ECX - EAX/ECX 연산을 수행하여 몫을 EAX 레지스터에 저장함
ADD
ADD A B - A+B한 결과를 A에 저장함
SUB
SUB A B - A-B한 결과를 A에 저장함
TEST
TEST A B - A와B를 AND 연산함
XCHG
XCHG A B - A에 있는 값과 B에 있는 값을 바꿈
'STUDY > REVERSING' 카테고리의 다른 글
ASSEMBLY : 어셈블리어 (0) | 2019.09.22 |
---|---|
함수 프롤로그, 함수 에필로그, 스택 프레임(Stack Frame) (0) | 2019.08.17 |
[REVERSING] 진수 변환 (0) | 2018.03.14 |