visual studio 에서 디버깅하면 디스어셈블러에서 이상한게 나오는데
알고보니 일종의 포인터 연산 이런거 였다는게 함정..

int _tmain(int argc, _TCHAR* argv[])
{
004113A0  push        ebp  
004113A1  mov         ebp,esp 
004113A3  sub         esp,0CCh 
004113A9  push        ebx  
004113AA  push        esi  
004113AB  push        edi  
004113AC  lea         edi,[ebp-0CCh] 
004113B2  mov         ecx,33h 
004113B7  mov         eax,0CCCCCCCCh 
004113BC  rep stos    dword ptr es:[edi] 
	int a = 0;
004113BE  mov         dword ptr [a],0 
	a++;
004113C5  mov         eax,dword ptr [a] 
004113C8  add         eax,1 
004113CB  mov         dword ptr [a],eax 
	printf("hello world %d\n", a);
004113CE  mov         esi,esp 
004113D0  mov         eax,dword ptr [a] 
004113D3  push        eax  
004113D4  push        offset string "hello world %d\n" (41573Ch) 
004113D9  call        dword ptr [__imp__printf (4182BCh)] 
004113DF  add         esp,8 
004113E2  cmp         esi,esp 
004113E4  call        @ILT+320(__RTC_CheckEsp) (411145h) 
	return 0;
004113E9  xor         eax,eax 
}

rep stos    dword ptr es:[edi]
mov         dword ptr [a],0 
mov         eax,dword ptr [a] 

머.. 자세한건 다시 읽어 봐야겠다.



[링크 : https://www.cs.umd.edu/users/meesh/webpages/cmsc311/links/handouts/ia32.pdf]

'Programming > Assembly(어셈블리)' 카테고리의 다른 글

fasm / nasm / masm  (0) 2015.06.13
어셈블리 관련  (0) 2015.06.11
ia32 어셈블리 언어  (0) 2013.12.12
.DATA? 지시어  (0) 2011.07.31
x86 register  (2) 2011.07.17
PowerPC(PPC) 어셈관련 내용  (0) 2011.04.04
Posted by 구차니

댓글을 달아 주세요