2014-10-30 3 views
-1

좀 어셈블리 코드에서 찾고 내가 참조 : -0x4 (%의 EBP)는 1 바이트이기 때문에조립 COMPL 32 비트, 8 비트

cmpl $0x1d32, -0x4(%ebp) 

, 그것은 분명히 다른 값 (7474)에 저장할 수 없습니다 그것. 따라서이 코드가 언제 이들을 동등한 것으로 표시합니까? 즉각적인 값의 가장 중요한/가장 중요한 바이트만을 비교할 것인가, 숨겨진 단어 확장이 있습니까?

+2

누가'-0x4 (% ebp)'가 1 바이트라고 말합니까? 'cmpl'의'l' 접미사는 길이가 4 바이트 (32 비트)라는 것을 분명하게 말합니다. – nrz

답변

1

-0x4(%ebp)은 관련 크기가 없습니다. 명령의 접미어 l은 크기를 32 비트 정수 (long)로 지정합니다. 따라서 프로세서는 주어진 주소로 시작하는 4 바이트를 가져오고 그것을 피연산자로 리틀 엔디안 바이트 순서 (최소 중요 바이트로 시작)로 해석합니다.

관련 문제