[ mov ]
- C언어의 assignment(=)할당 연산자와 비슷한 개념
- 기본적인 형태 : mov dst, src
- ! dst, src 가 둘 모두 메모리가 올 수는 없다.
-ex)
# entry point의 eax레지스터에 10을 할당하고 있다. 메모리 할당부분인 num은 시작 주소값을 나타내고 있고 때문에 mov인자 값에 그대로 사용할 수 없다. 메모리할당을 위해 []를 해줘야 하며 어디까지인지 알 수 있게 dword 를 앞부분에 붙여주어야 한다.
# 어셈블리에서 buffer 숫자배열과 문자열에 접근하는 방법을 알 수 있는 예제이다. double word 즉 dword이며 4바이트씩 차지하기때문에 +8을해야 30이라는 숫자를 출력할 수 있고, string인 'korea'는 1바이트씩움직이므로 +2 하면 'r'에 접근할 수 있다.
[ lea ]
- 유효주소를 계산하는 명령어
- lea dst, src
- 단순히 주소값만 계산해서 준다.
# lea를 통해서 5번째 요소를 100으로 바꿀 수 있고, c언어의 배열에서 많이 볼 수 있다.
'System Hacking' 카테고리의 다른 글
6일차] 비트연산자, 논리연산, 형변환 (0) | 2018.05.16 |
---|---|
5일차] 연산자 (사칙연산) (0) | 2018.05.15 |
3일차] 각 메모리 공간의 데이터 표현 + 레지스터 (0) | 2018.05.11 |
2일차] 어셈블리 확인하기 (0) | 2018.05.10 |
1일차] 환경 구축 및 컴파일 과정 (1) | 2018.05.09 |