2010-03-07 5 views
9

MOV는 아마도 ASM을 배우는 동안 모두가 배운 첫 번째 명령 일 것입니다.MOV src dest (또는) MOV dest src?

그냥 지금은 말한다 책 Assembly Language Programming in GNU/Linux for IA32 Architectures By Rajat Moona가 발생했습니다

alt text http://i.imagehost.org/0897/mov.gif

을하지만 그것이 MOV dest, src 것을 배웠습니다. 그것의 "Load dest with src". 심지어 Wiki 같은 말합니다.

저자가 틀렸다는 것은 아닙니다. 나는 그가 옳다는 것을 안다. 그러나 나는 무엇을 여기에서 놓치고 있냐?

btw. 그는 GCC의 as을 사용하여 이러한 명령어를 조합합니다. 그러나 그것은 명령 구문을 바꿔서는 안된다.

+0

1 장의 서문과 1 단락을 읽었어야했는데, 건너 뛰었습니다. ( – claws

답변

27

mov dest, src인텔 구문이라고합니다.

mov src, dest& T 신택제으로 불린다.

GNU 어셈블러는 AT & T 구문을 사용합니다. 내가 알고있는 다른 모든 x86 어셈블러는 인텔 구문을 사용합니다. 차이점 on wikipedia을 읽을 수 있습니다.

+10

일부 사람들은 화상을보고 싶어합니다. – Paschalis

+0

GNU 어셈블러는 AT & T syntax _by default_를 사용합니다. 무조건적으로 .intel_syntax noprefix 지시어를 사용하여 인텔 구문으로 바꿀 수 있습니다. – Ruslan

1

어셈블리 언어 구문에는 인텔과 AT & T 구문의 두 가지 고유 한 유형이 있습니다. 둘 모두의 비교는 Wikipedia's assembly language page에서 찾을 수 있습니다.

귀하의 책은 AT & T 구문을 사용합니다. 여기서 소스 피연산자는 대상 앞에옵니다.

6

예, 가스 사용시 & src, dest 순서를 사용하는 T 구문. MASM, TASM, NASM 등 모든 명령은 'dest, src'명령을 사용합니다.이 경우 AT & T 문법이 Intel 프로세서와 잘 맞지 않으며 (적어도 IMO 이상) 거의 읽을 수없는 난장판입니다. 예 : 특히 나쁘다.

+0

"읽을 수없는 엉망"은 거의 손톱을 그립니다. –