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
.DATA? 지시어  (0) 2011.07.31
x86 register  (2) 2011.07.17
PowerPC(PPC) 어셈관련 내용  (0) 2011.04.04
Posted by 구차니