본문 바로가기
스터디/system

리눅스 GDB 어셈블리어 AT&T 문법을 intel 문법으로 바꾸는 방법 //AT&T -> INTEL

by 깝태 2011. 8. 20.

먼저 AT&T 와 INTEL 둘의 문법 차이를 설명해보자면

mov $esp, $edx // EDX 에 ESP 를 복사한다. (A<-B)
mov edx, esp // EDX 를 ESP 에 복사한다. (A->B)

이 둘이 서로 같은 뜻을 의미한다. 대체적으로 intel 문법이 특수문자를 사용하지 않고 해석방법도 매우 간단하다.
그래서 올리디버거를 사용하는 초보자들은 GDB 로 넘어오면 어려움을 호소하는데 이를 해결하는 방법이 있다.

GDB 를 실행하고 다음과 같은 명령어를 입력한다.

(gdb) set disassembly-flavor intel

종료하고 다시 실행하면 원래 AT&T 문법으로 돌아오는데
다음 명령어를 실행하면 intel 문법으로 고정된다.

(gdb) set disassembly-flavor intel
(gdb) q

$echo "set disassembly-flavor intel" > ~./gdbinit
$cat ~/.gdbinit

위 처럼 입력해주면 계속 intel 문법으로 확인할 수 있다.