PUSH -> 스택에 값을 저장
PUSH EAX //스택에 EAX값을 넣는다.
PUSH 5 //스택에 5를 넣는다
POP-> 스택의 끝에 저장된 값을 가져온다.
POP EAX //스택에서 EAX값을 가져온다.
POP 5 // 스택에서 5를 가져온다.
MOV -> 지정한 값을 지정한 곳에 넣어주는 역할
MOV 목적지, 소스
MOV EAX,EBX //EBX에 잇는값을 EAX에 넣는다.
MOV명령어의 주의점
1.목적지와 소스는 같은 크기여야한다.
2.목적지와 소스는 모두 피연산자 일 수 없다.
3.즉시값은 세그먼트 레지스터로 이동 될 수 없다.
LEA -> 특정 변수의 주소를 옮기는것입니다.
LEA int long 을 예로든다면
long을 int로 주소를 넣는 명령어 입니다.
INC -> INC는 값을 1을 증가시켜줍니다.
INT EAX // EAX를 1증가 시켜준다.
DEC -> 값을 1 감소시켜줍니다.
DEC EAX // EAX를 1 감소 시켜준다.
CALL -> 함수를 호출하는 명령어. 스택에 리턴 주소를 PUSH한 뒤 바로 뒤의 주소 값으로 점프
CALL 주소값 // 주소값 함수 실행
CALL ECX // ECX로 저장된 주소로 이동 및 실행
RET -> 함수 내부에서 다시 원래 코드로 돌아오는 명령어 복귀주소로 돌아옴
CALL SUM //SUM 의 주소를 호출하고
RET // 복귀 주소로 다시 돌아옴
CMP -> 두연산자를 비교하는 역할을 합니다.
CMP A,B //A와 B를 비교합니다.
JMP -> 원하는 코드로 점프를 뛸 수 있다.
JMP 0xbfffffff 이면 0xbfffffff 의 주소로 점프하는 것입니다.
'ETC' 카테고리의 다른 글
gdb 명령어 (0) | 2017.06.27 |
---|---|
[리버싱 기초]레지스터 (0) | 2017.06.16 |
FTZ 서버 구축(해커스쿨) (0) | 2017.05.28 |
랜섬웨어 와 예방법 (0) | 2017.05.15 |
쉘 이란? [Linux] (0) | 2016.12.31 |