2012-10-19 5 views
8

다음 내용의 차이점은 무엇입니까?mov % eax, (% esp)

mov %eax,%esp 
mov %eax,(%esp) 

나는 이진 폭탄을 확산 일하고 있어요 및 어셈블리의 초기에 movleal 명령의 몇 가지에 문제가 있어요.

+1

하나는 레지스터를 복사합니다. 다른로드는 메모리에서 가리 킵니다. – Mysticial

+4

@Mysticial : 이것은 AT & T 문법이므로 모든 것이 거꾸로됩니다. - % esp와 (% esp)는 소스가 아닌 목적지입니다. –

+0

@JerryCoffin AHHHH !!! 나는 항상 그 함정에 빠지다 ... – Mysticial

답변

10

이렇게하면 % eax의 값이 % esp에 복사됩니다.

mov %eax,%esp 

이렇게하면 % eax의 값이 % esp가 가리키는 메모리 위치에 복사됩니다.

mov %eax,(%esp) 
+0

대단히 감사합니다! – arc

+0

후자는 본질적으로 esp의 감소없이 pop eax입니다. – Goaler444

관련 문제