I've compiled this Assembly code
global _main
extern _printf
section .text
_main:
push message
call _printf
add esp, 4
ret
message:
db 'Hello, World!', 10, 0
When I went to give u dump in the assembly code I came up with this
hello.exe: file format pei-i386
Disassembly of section .text:
00401000 <___mingw_CRTStartup>:
401000: 53 push %ebx
401001: 83 ec 38 sub $0x38,%esp
401004: a1 24 30 40 00 mov 0x403024,%eax
401009: 85 c0 test %eax,%eax
40100b: 74 1c je 401029 <___mingw_CRTStartup+0x29>
40100d: c7 44 24 08 00 00 00 movl $0x0,0x8(%esp)
401014: 00
401015: c7 44 24 04 02 00 00 movl $0x2,0x4(%esp)
40101c: 00
40101d: c7 04 24 00 00 00 00 movl $0x0,(%esp)
401024: ff d0 call *%eax
401026: 83 ec 0c sub $0xc,%esp
401029: c7 04 24 10 11 40 00 movl $0x401110,(%esp)
401030: e8 7b 0b 00 00 call 401bb0 <_SetUnhandledExceptionFilter@4>
401035: 83 ec 04 sub $0x4,%esp
401038: e8 13 04 00 00 call 401450 <___cpu_features_init>
40103d: e8 ee 04 00 00 call 401530 <__fpreset>
401042: 8d 44 24 2c lea 0x2c(%esp),%eax
401046: 89 44 24 10 mov %eax,0x10(%esp)
40104a: a1 00 20 40 00 mov 0x402000,%eax
40104f: c7 44 24 04 00 50 40 movl $0x405000,0x4(%esp)
401056: 00
401057: c7 04 24 04 50 40 00 movl $0x405004,(%esp)
40105e: c7 44 24 2c 00 00 00 movl $0x0,0x2c(%esp)
401065: 00
401066: 89 44 24 0c mov %eax,0xc(%esp)
40106a: 8d 44 24 28 lea 0x28(%esp),%eax
40106e: 89 44 24 08 mov %eax,0x8(%esp)
401072: e8 d9 0a 00 00 call 401b50 <___getmainargs>
401077: a1 18 50 40 00 mov 0x405018,%eax
40107c: 85 c0 test %eax,%eax
40107e: 74 42 je 4010c2 <___mingw_CRTStartup+0xc2>
401080: 8b 1d fc 60 40 00 mov 0x4060fc,%ebx
401086: a3 04 20 40 00 mov %eax,0x402004
40108b: 89 44 24 04 mov %eax,0x4(%esp)
40108f: 8b 43 10 mov 0x10(%ebx),%eax
401092: 89 04 24 mov %eax,(%esp)
401095: e8 be 0a 00 00 call 401b58 <__setmode>
40109a: a1 18 50 40 00 mov 0x405018,%eax
40109f: 89 44 24 04 mov %eax,0x4(%esp)
4010a3: 8b 43 30 mov 0x30(%ebx),%eax
4010a6: 89 04 24 mov %eax,(%esp)
4010a9: e8 aa 0a 00 00 call 401b58 <__setmode>
4010ae: a1 18 50 40 00 mov 0x405018,%eax
4010b3: 89 44 24 04 mov %eax,0x4(%esp)
4010b7: 8b 43 50 mov 0x50(%ebx),%eax
4010ba: 89 04 24 mov %eax,(%esp)
4010bd: e8 96 0a 00 00 call 401b58 <__setmode>
4010c2: e8 99 0a 00 00 call 401b60 <___p__fmode>
4010c7: 8b 15 04 20 40 00 mov 0x402004,%edx
4010cd: 89 10 mov %edx,(%eax)
4010cf: e8 dc 05 00 00 call 4016b0 <__pei386_runtime_relocator>
4010d4: 83 e4 f0 and $0xfffffff0,%esp
4010d7: e8 34 08 00 00 call 401910 <___main>
4010dc: e8 87 0a 00 00 call 401b68 <___p__environ>
4010e1: 8b 00 mov (%eax),%eax
4010e3: 89 44 24 08 mov %eax,0x8(%esp)
4010e7: a1 00 50 40 00 mov 0x405000,%eax
4010ec: 89 44 24 04 mov %eax,0x4(%esp)
4010f0: a1 04 50 40 00 mov 0x405004,%eax
4010f5: 89 04 24 mov %eax,(%esp)
4010f8: e8 53 02 00 00 call 401350 <_main>
4010fd: 89 c3 mov %eax,%ebx
4010ff: e8 6c 0a 00 00 call 401b70 <__cexit>
401104: 89 1c 24 mov %ebx,(%esp)
401107: e8 ac 0a 00 00 call 401bb8 <_ExitProcess@4>
40110c: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
00401110 <__gnu_exception_handler@4>:
401110: 53 push %ebx
401111: 83 ec 28 sub $0x28,%esp
401114: 8b 44 24 30 mov 0x30(%esp),%eax
401118: 8b 00 mov (%eax),%eax
40111a: 8b 00 mov (%eax),%eax
40111c: 3d 91 00 00 c0 cmp $0xc0000091,%eax
401121: 77 3d ja 401160 <__gnu_exception_handler@4+0x50>
401123: 3d 8d 00 00 c0 cmp $0xc000008d,%eax
401128: 72 4d jb 401177 <__gnu_exception_handler@4+0x67>
40112a: bb 01 00 00 00 mov $0x1,%ebx
40112f: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp)
401136: 00
401137: c7 04 24 08 00 00 00 movl $0x8,(%esp)
40113e: e8 35 0a 00 00 call 401b78 <_signal>
401143: 83 f8 01 cmp $0x1,%eax
401146: 0f 84 f4 00 00 00 je 401240 <__gnu_exception_handler@4+0x130>
40114c: 85 c0 test %eax,%eax
40114e: 0f 85 a0 00 00 00 jne 4011f4 <__gnu_exception_handler@4+0xe4>
401154: 31 c0 xor %eax,%eax
401156: 83 c4 28 add $0x28,%esp
401159: 5b pop %ebx
40115a: c2 04 00 ret $0x4
40115d: 8d 76 00 lea 0x0(%esi),%esi
401160: 3d 94 00 00 c0 cmp $0xc0000094,%eax
401165: 74 4b je 4011b2 <__gnu_exception_handler@4+0xa2>
401167: 3d 96 00 00 c0 cmp $0xc0000096,%eax
40116c: 74 17 je 401185 <__gnu_exception_handler@4+0x75>
40116e: 3d 93 00 00 c0 cmp $0xc0000093,%eax
401173: 75 df jne 401154 <__gnu_exception_handler@4+0x44>
401175: eb b3 jmp 40112a <__gnu_exception_handler@4+0x1a>
401177: 3d 05 00 00 c0 cmp $0xc0000005,%eax
40117c: 74 42 je 4011c0 <__gnu_exception_handler@4+0xb0>
40117e: 3d 1d 00 00 c0 cmp $0xc000001d,%eax
401183: 75 cf jne 401154 <__gnu_exception_handler@4+0x44>
401185: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp)
40118c: 00
40118d: c7 04 24 04 00 00 00 movl $0x4,(%esp)
401194: e8 df 09 00 00 call 401b78 <_signal>
401199: 83 f8 01 cmp $0x1,%eax
40119c: 74 69 je 401207 <__gnu_exception_handler@4+0xf7>
40119e: 85 c0 test %eax,%eax
4011a0: 74 b2 je 401154 <__gnu_exception_handler@4+0x44>
4011a2: c7 04 24 04 00 00 00 movl $0x4,(%esp)
4011a9: ff d0 call *%eax
4011ab: b8 ff ff ff ff mov $0xffffffff,%eax
4011b0: eb a4 jmp 401156 <__gnu_exception_handler@4+0x46>
4011b2: 31 db xor %ebx,%ebx
4011b4: e9 76 ff ff ff jmp 40112f <__gnu_exception_handler@4+0x1f>
4011b9: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
4011c0: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp)
4011c7: 00
4011c8: c7 04 24 0b 00 00 00 movl $0xb,(%esp)
4011cf: e8 a4 09 00 00 call 401b78 <_signal>
4011d4: 83 f8 01 cmp $0x1,%eax
4011d7: 74 4a je 401223 <__gnu_exception_handler@4+0x113>
4011d9: 85 c0 test %eax,%eax
4011db: 0f 84 73 ff ff ff je 401154 <__gnu_exception_handler@4+0x44>
4011e1: c7 04 24 0b 00 00 00 movl $0xb,(%esp)
4011e8: ff d0 call *%eax
4011ea: b8 ff ff ff ff mov $0xffffffff,%eax
4011ef: e9 62 ff ff ff jmp 401156 <__gnu_exception_handler@4+0x46>
4011f4: c7 04 24 08 00 00 00 movl $0x8,(%esp)
4011fb: ff d0 call *%eax
4011fd: b8 ff ff ff ff mov $0xffffffff,%eax
401202: e9 4f ff ff ff jmp 401156 <__gnu_exception_handler@4+0x46>
401207: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp)
40120e: 00
40120f: c7 04 24 04 00 00 00 movl $0x4,(%esp)
401216: e8 5d 09 00 00 call 401b78 <_signal>
40121b: 83 c8 ff or $0xffffffff,%eax
40121e: e9 33 ff ff ff jmp 401156 <__gnu_exception_handler@4+0x46>
401223: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp)
40122a: 00
40122b: c7 04 24 0b 00 00 00 movl $0xb,(%esp)
401232: e8 41 09 00 00 call 401b78 <_signal>
401237: 83 c8 ff or $0xffffffff,%eax
40123a: e9 17 ff ff ff jmp 401156 <__gnu_exception_handler@4+0x46>
40123f: 90 nop
401240: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp)
401247: 00
401248: c7 04 24 08 00 00 00 movl $0x8,(%esp)
40124f: e8 24 09 00 00 call 401b78 <_signal>
401254: 85 db test %ebx,%ebx
401256: b8 ff ff ff ff mov $0xffffffff,%eax
40125b: 0f 84 f5 fe ff ff je 401156 <__gnu_exception_handler@4+0x46>
401261: 89 44 24 1c mov %eax,0x1c(%esp)
401265: e8 c6 02 00 00 call 401530 <__fpreset>
40126a: 8b 44 24 1c mov 0x1c(%esp),%eax
40126e: e9 e3 fe ff ff jmp 401156 <__gnu_exception_handler@4+0x46>
401273: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
401279: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
00401280 <_mainCRTStartup>:
401280: 83 ec 1c sub $0x1c,%esp
401283: c7 04 24 01 00 00 00 movl $0x1,(%esp)
40128a: ff 15 f4 60 40 00 call *0x4060f4
401290: e8 6b fd ff ff call 401000 <___mingw_CRTStartup>
401295: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
401299: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
004012a0 <_WinMainCRTStartup>:
4012a0: 83 ec 1c sub $0x1c,%esp
4012a3: c7 04 24 02 00 00 00 movl $0x2,(%esp)
4012aa: ff 15 f4 60 40 00 call *0x4060f4
4012b0: e8 4b fd ff ff call 401000 <___mingw_CRTStartup>
4012b5: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
4012b9: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
004012c0 <_atexit>:
4012c0: a1 0c 61 40 00 mov 0x40610c,%eax
4012c5: ff e0 jmp *%eax
4012c7: 89 f6 mov %esi,%esi
4012c9: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
004012d0 <__onexit>:
4012d0: a1 00 61 40 00 mov 0x406100,%eax
4012d5: ff e0 jmp *%eax
4012d7: 90 nop
4012d8: 90 nop
4012d9: 90 nop
4012da: 90 nop
4012db: 90 nop
4012dc: 90 nop
4012dd: 90 nop
4012de: 90 nop
4012df: 90 nop
004012e0 <___gcc_register_frame>:
4012e0: 55 push %ebp
4012e1: 89 e5 mov %esp,%ebp
4012e3: 83 ec 18 sub $0x18,%esp
4012e6: a1 0c 20 40 00 mov 0x40200c,%eax
4012eb: 85 c0 test %eax,%eax
4012ed: 74 3a je 401329 <___gcc_register_frame+0x49>
4012ef: c7 04 24 00 30 40 00 movl $0x403000,(%esp)
4012f6: e8 c5 08 00 00 call 401bc0 <_GetModuleHandleA@4>
4012fb: 83 ec 04 sub $0x4,%esp
4012fe: 85 c0 test %eax,%eax
401300: ba 00 00 00 00 mov $0x0,%edx
401305: 74 15 je 40131c <___gcc_register_frame+0x3c>
401307: c7 44 24 04 0e 30 40 movl $0x40300e,0x4(%esp)
40130e: 00
40130f: 89 04 24 mov %eax,(%esp)
401312: e8 b1 08 00 00 call 401bc8 <_GetProcAddress@8>
401317: 83 ec 08 sub $0x8,%esp
40131a: 89 c2 mov %eax,%edx
40131c: 85 d2 test %edx,%edx
40131e: 74 09 je 401329 <___gcc_register_frame+0x49>
401320: c7 04 24 0c 20 40 00 movl $0x40200c,(%esp)
401327: ff d2 call *%edx
401329: c7 04 24 40 13 40 00 movl $0x401340,(%esp)
401330: e8 8b ff ff ff call 4012c0 <_atexit>
401335: c9 leave
401336: c3 ret
401337: 89 f6 mov %esi,%esi
401339: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
00401340 <___gcc_deregister_frame>:
401340: 55 push %ebp
401341: 89 e5 mov %esp,%ebp
401343: 5d pop %ebp
401344: c3 ret
401345: 90 nop
401346: 90 nop
401347: 90 nop
401348: 90 nop
401349: 90 nop
40134a: 90 nop
40134b: 90 nop
40134c: 90 nop
40134d: 90 nop
40134e: 90 nop
40134f: 90 nop
00401350 <_main>:
401350: c3 ret
401351: 66 90 xchg %ax,%ax
401353: 66 90 xchg %ax,%ax
401355: 66 90 xchg %ax,%ax
401357: 66 90 xchg %ax,%ax
401359: 66 90 xchg %ax,%ax
40135b: 66 90 xchg %ax,%ax
40135d: 66 90 xchg %ax,%ax
40135f: 90 nop
00401360 <___dyn_tls_dtor@12>:
401360: 83 ec 1c sub $0x1c,%esp
401363: 8b 44 24 24 mov 0x24(%esp),%eax
401367: 85 c0 test %eax,%eax
401369: 74 15 je 401380 <___dyn_tls_dtor@12+0x20>
40136b: 83 f8 03 cmp $0x3,%eax
40136e: 74 10 je 401380 <___dyn_tls_dtor@12+0x20>
401370: b8 01 00 00 00 mov $0x1,%eax
401375: 83 c4 1c add $0x1c,%esp
401378: c2 0c 00 ret $0xc
40137b: 90 nop
40137c: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
401380: 8b 54 24 28 mov 0x28(%esp),%edx
401384: 89 44 24 04 mov %eax,0x4(%esp)
401388: 8b 44 24 20 mov 0x20(%esp),%eax
40138c: 89 54 24 08 mov %edx,0x8(%esp)
401390: 89 04 24 mov %eax,(%esp)
401393: e8 18 07 00 00 call 401ab0 <___mingw_TLScallback>
401398: b8 01 00 00 00 mov $0x1,%eax
40139d: 83 c4 1c add $0x1c,%esp
4013a0: c2 0c 00 ret $0xc
4013a3: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
4013a9: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
004013b0 <___dyn_tls_init@12>:
4013b0: 56 push %esi
4013b1: 53 push %ebx
4013b2: 83 ec 14 sub $0x14,%esp
4013b5: 83 3d 28 50 40 00 02 cmpl $0x2,0x405028
4013bc: 8b 44 24 24 mov 0x24(%esp),%eax
4013c0: 74 0a je 4013cc <___dyn_tls_init@12+0x1c>
4013c2: c7 05 28 50 40 00 02 movl $0x2,0x405028
4013c9: 00 00 00
4013cc: 83 f8 02 cmp $0x2,%eax
4013cf: 74 12 je 4013e3 <___dyn_tls_init@12+0x33>
4013d1: 83 f8 01 cmp $0x1,%eax
4013d4: 74 42 je 401418 <___dyn_tls_init@12+0x68>
4013d6: 83 c4 14 add $0x14,%esp
4013d9: b8 01 00 00 00 mov $0x1,%eax
4013de: 5b pop %ebx
4013df: 5e pop %esi
4013e0: c2 0c 00 ret $0xc
4013e3: be 14 70 40 00 mov $0x407014,%esi
4013e8: 81 ee 14 70 40 00 sub $0x407014,%esi
4013ee: c1 fe 02 sar $0x2,%esi
4013f1: 85 f6 test %esi,%esi
4013f3: 7e e1 jle 4013d6 <___dyn_tls_init@12+0x26>
4013f5: 31 db xor %ebx,%ebx
4013f7: 8b 04 9d 14 70 40 00 mov 0x407014(,%ebx,4),%eax
4013fe: 85 c0 test %eax,%eax
401400: 74 02 je 401404 <___dyn_tls_init@12+0x54>
401402: ff d0 call *%eax
401404: 83 c3 01 add $0x1,%ebx
401407: 39 f3 cmp %esi,%ebx
401409: 75 ec jne 4013f7 <___dyn_tls_init@12+0x47>
40140b: 83 c4 14 add $0x14,%esp
40140e: b8 01 00 00 00 mov $0x1,%eax
401413: 5b pop %ebx
401414: 5e pop %esi
401415: c2 0c 00 ret $0xc
401418: 8b 44 24 28 mov 0x28(%esp),%eax
40141c: c7 44 24 04 01 00 00 movl $0x1,0x4(%esp)
401423: 00
401424: 89 44 24 08 mov %eax,0x8(%esp)
401428: 8b 44 24 20 mov 0x20(%esp),%eax
40142c: 89 04 24 mov %eax,(%esp)
40142f: e8 7c 06 00 00 call 401ab0 <___mingw_TLScallback>
401434: eb a0 jmp 4013d6 <___dyn_tls_init@12+0x26>
401436: 8d 76 00 lea 0x0(%esi),%esi
401439: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
...
The code is completely different, why does the code change after compiling?