728x90
반응형
어셈블리어(Assembly language)란?
- 기계어와 1대1 대응되는 컴퓨터 프로그램의 저급 언어.
어셈블러(Assember)란?
- 어셈블리어로 작성된 소스 코드를 기계어로 변환하는 프로그램.
어셈블리어 구조
CPU는 2진수로 모든 것을 처리하는데 어셈블리 명령어들도 2진수로 되어 있다.
하지만 2진수로 된 것은 알아보기가 힘들어 mov, add와 같은 형태로 변환하여 보여진다.
mov %eax %ebx는 C언어로 보면 ebx = eax의 경우와 같다.
eax에 저장된 값을 ebx에 할당한다.
어셈블리어 문법 (Intel vs AT&T)
Intel 방식
- 가독성이 뛰어남.
- 윈도우 환경에서 구동.
- 오퍼랜드 위치 : mov dest, source
- 메모리 오퍼랜드 : mov [eax], [ebx]
AT&T 방식
- 가독성은 떨어짐.
- 리눅스 환경에서 구동
- 인텔 방식보다 좀 더 많은 정보를 포함하고 있음.
- '%', '$'가 붙음.
- 오퍼랜드 위치 : mov source, dest
- 메모리 오퍼랜드 : mov (%ebx), (%eax)
반응형
'Study > Reversing' 카테고리의 다른 글
[리버싱] 리틀 엔디언&빅 엔디언 (0) | 2017.08.23 |
---|---|
[리버싱] 레지스터에 대해 알아보자 (0) | 2017.08.23 |
[리버싱] 어셈블리어 명령어 (0) | 2017.08.22 |
[리버싱] 디버거 조사(OllyDbg) (0) | 2017.08.21 |
[리버싱] 리버싱에 대해 알아보자 (3) | 2017.08.20 |
댓글