2012-02-06 3 views
1

나는 86의 LEA 명령에 좋은 그립을 얻기 위해 노력하고 있어요 :이 두 줄을 감안할 때86 LEA 명령

leal (%edx, %edx, 4), %eax 
leal (%edx, %edx, 2), %eax 

, 내가 알고 : 다음

eax = edx + edx*4

eax = edx + edx*2

두 가지 질문이 있습니다. 첫째,이 명령어가이 예제에서와 같이 순서대로 나타나면 두 번째 라인이 실행되면 eax 레지스터를 덮어 씁니 까? 그리고 정확하게 레지스터에로드되는 것은 무엇입니까? 다른 주소? 또는이 레지스터가 가리키는 값에 대해 산술 연산을 수행합니까?

+2

의 중복 가능성 http://stackoverflow.com/questions/9153282/lea-assembly 곱한 EDX에 저장된 오프셋 값 -instruction) – Grizzly

+1

Intel (AMD) CPU 매뉴얼을 다운로드하고 읽는 방법은 어떻습니까? –

+0

또한 매뉴얼을 많이 읽으면 http://www.agner.org/optimize/ – Gigi

답변

2

이러한 명령어는 예에서와 같이 순차적으로 나타나는 경우는 레지스터 EAX 번째 행이 실행되면 겹쳐?

예 (이 모두 지시 한 후 덮어 쓰기)

그리고 무슨 일이 정확히 레지스터에로드 할 것인가? 다른 주소? EDX + 설명

메모리 어드레스 2

[레아 어셈블리 명령어 (