728x90
반응형
어셈블리어 기본 문법
대표적인 명령어(Instruction)
- MOV: A의 값을 B의 값으로 옮깁니다. MOV EAX, 100은 EAX에 100이라는 값을 넣습니다. 다만 구체적인 연산을 포함할 수 없습니다.
- LEA: A의 값을 B의 값으로 연산을 포함하여 복사합니다. LEA EAX, [EAX + 1000]은 EAX에 1000을 넣은 값을 다시 EAX에 삽입합니다. 이처럼 연산을 포함할 수 있습니다.
- JMP: 특정한 위치로 건너 뛰어 코드를 실행합니다. JMP A라고 하면 A의 위치로 뛰어서 코드가 실행됩니다. 비슷하게 조건 점프 명령도 존재합니다. JA, JB, JE 등의 명령어는 두 인자를 받아서 비교한 뒤에 결과에 따라서 다른 방향으로 점프할 수 있습니다.
- CALL: 함수를 호출했다가 다시 원래 위치로 돌아올 때 사용합니다. JMP와 다른 점은 실행한 뒤에 끝나게 되면 RET에 저장하고 다시 원래 상태로 돌아온다는 점입니다.
- NOP: 아무 작업도 하지 않는 명령어입니다. 1Byte의 빈 공간을 차지합니다.
- RET: 현재 함수가 끝난 뒤에 돌아갈 주소를 지정하기 위해 사용합니다.
- PUSH: 스택에 해당 값을 넣습니다.
- POP: 스택에 있는 값을 빼냅니다.
- LEAVE: 현재까지의 메모리 스택을 비우고 EBP를 자신을 호출한 메모리 주소로 채웁니다. 실행 중인 함수를 종료하기 위해 정리하는 작업에 사용됩니다.
728x90
반응형
'크래프톤 정글 - TIL' 카테고리의 다른 글
크래프톤 정글 5기 TIL - Day 24(C언어 자료구조 - 연결 리스트) (0) | 2024.04.12 |
---|---|
크래프톤 정글 5기 TIL - Day 23 (0) | 2024.04.12 |
크래프톤 정글 5기 TIL - Day 21 (0) | 2024.04.10 |
크래프톤 정글 5기 TIL - Day 20(CS:APP) (0) | 2024.04.08 |
크래프톤 정글 5기 TIL - Day 19(CS:APP) (0) | 2024.04.08 |