Assemble

[Assemble] 기초 문법 정리

어셈블리의 기초 문법을 정리하겠습니다.

 

1. MOV

 

A의 값을 B에 대입합니다.

[ Ex) mov rax, 0 는 rax에 0을 대입하는것과 같음 ]

 

 

2. LEA

 

A의 값을 B의 값으로 연산을 포함하여 복사

[ Ex) LEA EAX, [EAX + 1000]은 EAX에 1000을 넣은 값을 다시 EAX에 삽입]

 

 

3. JMP

 

특정한 위치로 건너 뛰어 코드를 실행 (한번 위치로 가면 다시 돌아오지 X)

[ Ex) JMP A 는 A의 위치로 점프를 해 코드를 실행한다는것과 같음 ]

 

4. CALL

 

함수를 호출한 다음 다시 원래 위치로 돌아올 때 사용

[ JMP와 다른 점은 RET(리턴 주소) 를 이용해 다시 원래 위치로 돌아온다는 특징이 있음]

 

 

5. NOP

아무 작업도 하지 않는 명령어

[ 1Byte의 빈 공간을 차지]

 

 

6. RET

 

현재 함수가 끝난 뒤에 돌아갈 주소를 지정

 

 

7. PUSH

 

스택에 해당 값을 넣는다.

 

8. POP

 

스택에 있는 값을 빼낸다.

 

 

9. LEAVE

현재까지 메모리 스택을 비우고 EBP( = RBP)를 자신을 호출한 메모리 주소로 채운다.

[ 실행중인 함수를 종료하기 위해 정리하는 작업에 사용 ]

 

코딩을 하면서 더 자세히 익혀야겠습니다..

'Assemble' 카테고리의 다른 글

[Assemble] 반복문 구현하기  (0) 2020.06.01
[Assemble] 입력한 값을 출력하는 프로그램 만들기  (0) 2020.05.30
[Assemble] 메모리 구조  (0) 2020.05.27
[Assemble] Hello World!  (0) 2020.05.27