kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

Cyber Security

AT&T 문법과 인텔 문법의 차이

까마기 2017. 6. 4. 22:17
728x90
반응형
  • AT&T 문법과 인텔 문법의 차이

1. 레지스터를 나타낼 때

: intel : eax / AT&T : %eax

 

2. operand 순서

: intel : destination, source / AT&T : source, destination

 

3. 상수

: intel : 5로 표기 / AT&T : $5로 표기

 

4. 메모리 주소 참조

: intel : [eax] / AT&T : (%eax)



5. 레지스터 + offset 위치의 메모리 주소를 참조할 때

: intel : [eax + 4] / AT&T : 4(%eax)

 

  • 범용 레지스터의 종류 및 역할

1. EAX 레지스터

: Accumulator Register, 산술 연산을 수행 or 함수의 리턴 값을 전달.

2. EDX 레지스터

: Data Register, EAX와 함께 복잡한 연산을 위한 추가적인 데이터를 저장할 때 사용

3. ECX 레지스터

: Counter Register, 반복적으로 수행되는 연산(반복문)에 사용됨. 반복 연산에서 문자열을 저장하거나 카운트를 셈.

4. ESI 레지스터/ EDI 레지스터

: ESI레지스터는 Source Index를 나타내고, EDI 레지스터는 Destination Index를 나태낸다. 데이터 연산을 읽기 위해서 ESI 레지스터가 사용되고, 데이터 연산을 쓰기 위해 EDI 레지스터가 사용된다.

5. ESP 레지스터

: 특정한 목적은 없음. 레지스터의 일반 목적인 저장소로 쓰임.

6. EIP 레지스터

: 바이너리 코드 실행 중에 현재 실행되고 있는 명령의 주소를 가리킨다.

 

 

반응형