int triangle (int width, in height){ int array[5] = {0,1,2,3,4}; int area; area = width * height/2; return (area); } Here is the same function, but in disassembled form. The following is gdb output: 0x8048430 : push %ebp 0x8048431 : mov %esp, %ebp 0x8048433 : push %edi 0x8048434 : push %esi 0x8048435 : sub $0x30,%esp 0x8048438 : lea 0xffffffd8(%ebp), %edi 0x804843b : mov $0x8049508,%esi 0x8048440 : cld 0x8048441 : mov $0x30,%esp 0x8048446 : repz movsl %ds:( %esi), %es:( %edi) 0x8048448 : mov 0x8(%ebp),%eax 0x804844b : mov %eax,%edx 0x804844d : imul 0xc(%ebp),%edx 0x8048451 : mov %edx,%eax 0x8048453 : sar $0x1f,%eax 0x8048456 : shr $0x1f,%eax 0x8048459 : lea (%eax, %edx, 1), %eax 0x804845c : sar %eax 0x804845e : mov %eax,0xffffffd4(%ebp) 0x8048461 : mov 0xffffffd4(%ebp),%eax 0x8048464 : mov %eax,%eax 0x8048466 : add $0x30,%esp 0x8048469 : pop %esi 0x804846a : pop %edi 0x804846b pop %ebp 0x804846c : ret