이것은 간단한 질문이지만 google에서 신뢰할 수있는 답변을 찾을 수 없습니다.x86 간단한 mov 명령
이 명령은 무엇을 의미 하는가 :
movl %eax, (%esi, %ecx, 4)
그것은
(%esi, %ecx, 4)
이 너무 가리키고있는 메모리에 값을 레지스터
eax
에서 값을 이동인가?
(%esi, %ecx, 4)
은 배열입니다. 즉, Array [Xs + 4i]를 의미합니다. 여기서 Xs는 Array의 메모리에서 시작점이고 i는 정수 배열의 오프셋입니다.
코드는 eax가 정수 배열을 나타내는 것은 아닙니다. 그것은 포인터의 벡터 일 수 있습니다. 그렇지 않으면, 예 : 소스를 먼저, 목적지를 두 번째로 지정하십시오. 인텔/마이크로 소프트가 그 반대의 방식을 취한 이후로는 언제나 혼란스러워합니다. –