At 10:37 2007-03-11, rakasi saiprasad wrote:
>Hi,
>
>I was looking into the assembly code of a add function that I have written.
>The function takes two integers as input and outputs an integer, which is
>the sum of the two inputs. I am declaring 3 local varibles in the function,
>2 to hold input and one for the output . The disassembly code shown for the
>same in visual studio 6 is as follows.

vs6 is a very old compiler, I have NO idea what it's doing
why did you allocate ANY local variables??
I see that you were apparently using "debug" compile
nobody really cares how much memory a compiler uses then...

>-----------------------------------------------------------------------------
>25: int add(int a, int b){
>00401610   push        ebp
>00401611   mov         ebp,esp
>00401613   sub         esp,44h   *// allocating / reserving 68 bytes ?
>*00401616   push        ebx
>00401617   push        esi
>00401618   push        edi
>00401619   lea         edi,[ebp-44h]
>0040161C   mov         ecx,11h
>00401621   mov         eax,0CCCCCCCCh
>00401626   rep stos    dword ptr [edi]
>26:
>27:   int c;
>28:
>29:   c= a+b;
>00401628   mov         eax,dword ptr [ebp+8]
>0040162B   add         eax,dword ptr [ebp+0Ch]
>0040162E   mov         dword ptr [ebp-4],eax
>30:   return c;
>00401631   mov         eax,dword ptr [ebp-4]
>31:
>32:
>33:   }
>00401634   pop         edi
>00401635   pop         esi
>00401636   pop         ebx
>00401637   mov         esp,ebp
>00401639   pop         ebp
>0040163A   ret
>-----------------------------------------------------------------------------
>  1) My question is why did the compiler allocated 68 bytes while I have only
>3 integer variables in my function = 3*4 = 12 bytes?
>2) Though it allocates the 68 bytes instead of 12, it never refers to any
>thing other than those 12 bytes?
>
>Thanks in advance,
>Sai.
>
>
>[Non-text portions of this message have been removed]
>
>
>
>
>To unsubscribe, send a blank message to 
><mailto:[EMAIL PROTECTED]>.
>Yahoo! Groups Links
>
>
>

Victor A. Wagner Jr.      http://rudbek.com
The five most dangerous words in the English language:
               "There oughta be a law" 

Reply via email to