올리디버거나 ida 툴로 어셈 코드 읽을 때 말야

 

 뭘 공부해야 그게 쉽게 읽힐까

 

 아무리 고민해도 이해가 안되는데 코드가

 

 어셈블리 160페이지짜리 책 지금 읽고 있는데 이거 다 읽으면 쉽게 읽힐까?

 

 어셈블리 책은 어셈에 대해 나와있는 건 같지만 디버깅 코드는 어셈블리 명렁어 자체만 안다고 해서 이해할 수 있는 건 아닌 거 같아

 

 push    0FAh            ; nSize
lea     eax, [ebp+Filename]
push    eax             ; lpFilename
push    hInstance       ; hModule
call    ds:GetModuleFileNameA
lea     edi, [ebp+eax-0FDh]
mov     eax, edi
lea     ecx, [ebp+Filename]
sub     eax, ecx
cmp     eax, 4
jle     short loc_1003DC0

 예를 들어 함수 호출하는 루틴이 이렇게 있으면

 

 [ebp+Filename] 같이 ebp에 무언가 값을 더하는게 있고 [ebp+eax-0FDh] 같이 빼는게 있는데 이게 어떤 차이인지라든가

 

 아무튼 ebp에 무언가를 더한 값을 참조하는건 맞는데 이게 구체적으로 어떤 값을 참조하게 되는건지 이런걸 모르겠어 어떻게해야할까