Objdump 출력에서“-0x1 (%edx,%ecx, 1)”은 무엇을 의미합니까?
문제
이진을 이해하기 위해 objdump를 사용하여 ASM 구문에서 충분히 유창하지 않다는 것을 알고 있습니다. 다음 개념은 무엇을 의미합니까?
xor %al,-0x1(%edx,%ecx,1)
그리고 당신이 그것에있는 동안 - 그러한 개념에 대한 문서를 찾기 위해 무엇을 검색해야합니까?
해결책
괄호는 메모리 오프셋입니다.
-0x1(%edx,%ecx,1)
(AT & T 구문)은 동일합니다 [edx+ecx*1-1]
(인텔 구문)
빠른 가이드 AT & T 어셈블리 구문 (귀하의 요청에 따라).
다른 팁
이것은 'a'레지스터의 낮은 바이트 (%al)의 독점 또는 내용과 주소의 메모리 내용이 32 비트 너비 레지스터 'd'(%edx), 'c의 합인 내용입니다. '1 (%ecx, 1) 및 -1을 곱한다. 결과는 %al에 다시 기록됩니다. c
al ^= (char*)(edx+ecx*1 - 1);
당신은 이런 것들을 조회 할 수 있습니다 샌드 파일 또는 인텔/AMD 문서에서.
제휴하지 않습니다 StackOverflow