Write a ARMv8 assembly program to compute the sum of the generated Fibonacci ser
ID: 3858936 • Letter: W
Question
Write a ARMv8 assembly program to compute the sum of the generated Fibonacci series. Do not use recursion. Assume the user input n is a 64-bit non-zero positive integer which is stored in X19 and n is the range of the series. A Fibonacci series with range of 5 will have 7 terms (0, 1, 1, 2, 3, 5, 8). Compute the sum of the generated Fibonacci series and store the sum in X20. Assemble, test, and simulate the assembly code using DS-5 simulator. Do not upload the entire DS-5 project. Only upload the assembly file (.S file) from the DS-5 project to Blackboard. Comment your assembly code. (35 Points)
Explanation / Answer
0x401000: f3 c3 rep ret
0x401002: 8d b4 26 00 00 00 00 lea esi, dword [ esi + 0x0 ]
0x401009: 8d bc 27 00 00 00 00 lea edi, dword [ edi + 0x0 ]
; function: _pre_cpp_init at 0x401010 -- 0x40105f
0x401010: 83 ec 2c sub esp, 0x2c
0x401013: a1 20 a0 40 00 mov eax, dword [ 0x40a020 ]
0x401018: c7 44 24 10 18 a0 40 00 mov dword [ esp + 0x10 ], 0x40a018
0x401020: c7 44 24 08 0c a0 40 00 mov dword [ esp + 0x8 ], 0x40a00c
0x401028: c7 44 24 04 08 a0 40 00 mov dword [ esp + 0x4 ], 0x40a008
0x401030: a3 18 a0 40 00 mov dword [ 0x40a018 ], eax
0x401035: a1 24 a0 40 00 mov eax, dword [ 0x40a024 ]
0x40103a: c7 04 24 04 a0 40 00 mov dword [ esp ], 0x40a004
0x401041: 89 44 24 0c mov dword [ esp + 0xc ], eax
0x401045: e8 76 64 00 00 call 0x4074c0 <function_4074c0>
0x40104a: a3 1c a0 40 00 mov dword [ 0x40a01c ], eax
0x40104f: 83 c4 2c add esp, 0x2c
0x401052: c3 ret
0x401053: 8d b6 00 00 00 00 lea esi, dword [ esi + 0x0 ]
0x401059: 8d bc 27 00 00 00 00 lea edi, dword [ edi + 0x0 ]
; function: _pre_c_init at 0x401060 -- 0x40117f
0x401060: 83 ec 1c sub esp, 0x1c
0x401063: 31 c0 xor eax, eax
0x401065: 66 81 3d 00 00 40 00 4d 5a cmp word [ 0x400000 ], 0x5a4d
0x40106e: c7 05 30 a0 40 00 01 00 00 00 mov dword [ 0x40a030 ], 0x1
0x401078: c7 05 2c a0 40 00 01 00 00 00 mov dword [ 0x40a02c ], 0x1
0x401082: c7 05 28 a0 40 00 01 00 00 00 mov dword [ 0x40a028 ], 0x1
0x40108c: c7 05 38 a0 40 00 01 00 00 00 mov dword [ 0x40a038 ], 0x1
0x401096: 74 68 jz 0x401100 <_pre_c_init+0xa0>
0x401098: a3 14 a0 40 00 mov dword [ 0x40a014 ], eax
0x40109d: a1 3c a0 40 00 mov eax, dword [ 0x40a03c ]
0x4010a2: 85 c0 test eax, eax
0x4010a4: 74 4a jz 0x4010f0 <_pre_c_init+0x90>
0x4010a6: c7 04 24 02 00 00 00 mov dword [ esp ], 0x2
0x4010ad: e8 16 64 00 00 call 0x4074c8 <function_4074c8>
0x4010b2: c7 04 24 ff ff ff ff mov dword [ esp ], 0xffffffff
0x4010b9: e8 52 06 00 00 call 0x401710 <_encode_pointer>
0x4010be: 8b 15 40 a0 40 00 mov edx, dword [ 0x40a040 ]
0x4010c4: a3 8c ad 40 00 mov dword [ 0x40ad8c ], eax
0x4010c9: a3 90 ad 40 00 mov dword [ 0x40ad90 ], eax
0x4010ce: a1 cc b1 40 00 mov eax, dword [ 0x40b1cc ]
0x4010d3: 89 10 mov dword [ eax ], edx
0x4010d5: e8 46 09 00 00 call 0x401a20 <___udiv_w_sdiv>
0x4010da: 83 3d 18 80 40 00 01 cmp dword [ 0x408018 ], 0x1
0x4010e1: 74 6d jz 0x401150 <_pre_c_init+0xf0>
0x4010e3: 31 c0 xor eax, eax
0x4010e5: 83 c4 1c add esp, 0x1c
0x4010e8: c3 ret
0x4010e9: 8d b4 26 00 00 00 00 lea esi, dword [ esi + 0x0 ]
0x4010f0: c7 04 24 01 00 00 00 mov dword [ esp ], 0x1
0x4010f7: e8 cc 63 00 00 call 0x4074c8 <function_4074c8>
0x4010fc: eb b4 jmp 0x4010b2 <_pre_c_init+0x52>
0x4010fe: 66 90 xchg ax, ax
0x401100: 8b 15 3c 00 40 00 mov edx, dword [ 0x40003c ]
0x401106: 81 ba 00 00 40 00 50 45 00 00 cmp dword [ edx + 0x400000 ], 0x4550
0x401110: 8d 8a 00 00 40 00 lea ecx, dword [ edx + 0x400000 ]
0x401116: 75 80 jnz 0x401098 <_pre_c_init+0x38>
0x401118: 0f b7 51 18 movzx edx, word [ ecx + 0x18 ]
0x40111c: 66 81 fa 0b 01 cmp dx, 0x10b
0x401121: 74 3f jz 0x401162 <_pre_c_init+0x102>
0x401123: 66 81 fa 0b 02 cmp dx, 0x20b
0x401128: 0f 85 6a ff ff ff jnz 0x401098 <_pre_c_init+0x38>
0x40112e: 83 b9 84 00 00 00 0e cmp dword [ ecx + 0x84 ], 0xe
0x401135: 0f 86 5d ff ff ff jbe 0x401098 <_pre_c_init+0x38>
0x40113b: 8b 91 f8 00 00 00 mov edx, dword [ ecx + 0xf8 ]
0x401141: 31 c0 xor eax, eax
0x401143: 85 d2 test edx, edx
0x401145: 0f 95 c0 setnz al
0x401148: e9 4b ff ff ff jmp 0x401098 <_pre_c_init+0x38>
0x40114d: 8d 76 00 lea esi, dword [ esi + 0x0 ]
0x401150: c7 04 24 c0 19 40 00 mov dword [ esp ], 0x4019c0
0x401157: e8 54 08 00 00 call 0x4019b0 <__mingw_setusermatherr>
0x40115c: 31 c0 xor eax, eax
0x40115e: 83 c4 1c add esp, 0x1c
0x401161: c3 ret
0x401162: 83 79 74 0e cmp dword [ ecx + 0x74 ], 0xe
0x401166: 0f 86 2c ff ff ff jbe 0x401098 <_pre_c_init+0x38>
0x40116c: 8b 89 e8 00 00 00 mov ecx, dword [ ecx + 0xe8 ]
0x401172: 31 c0 xor eax, eax
0x401174: 85 c9 test ecx, ecx
0x401176: 0f 95 c0 setnz al
0x401179: e9 1a ff ff ff jmp 0x401098 <_pre_c_init+0x38>
0x40117e: 66 90 xchg ax, ax
; function: ___tmainCRTStartup at 0x401180 -- 0x4014bf
0x401180: 55 push ebp
0x401181: 31 c0 xor eax, eax
0x401183: 89 e5 mov ebp, esp
0x401185: b9 11 00 00 00 mov ecx, 0x11
0x40118a: 57 push edi
0x40118b: 56 push esi
0x40118c: 8d 55 a4 lea edx, dword [ ebp + 0xffffffa4 ]
0x40118f: 53 push ebx
0x401190: 89 d7 mov edi, edx
0x401192: 83 ec 7c sub esp, 0x7c
0x401195: f3 ab rep stosd
0x401197: b0 30 mov al, 0x30
0x401199: e8 d2 15 00 00 call 0x402770 <_qm__qm__qm_>
0x40119e: 29 c4 sub esp, eax
0x4011a0: 8d 44 24 1b lea eax, dword [ esp + 0x1b ]
0x4011a4: 83 e0 f0 and eax, 0xfffffff0
0x4011a7: c7 00 cc cc cc cc mov dword [ eax ], 0xcccccccc
0x4011ad: c7 40 04 cc cc cc cc mov dword [ eax + 0x4 ], 0xcccccccc
0x4011b4: c7 40 08 cc cc cc cc mov dword [ eax + 0x8 ], 0xcccccccc
0x4011bb: c7 40 0c cc cc cc cc mov dword [ eax + 0xc ], 0xcccccccc
0x4011c2: c7 40 10 cc cc cc cc mov dword [ eax + 0x10 ], 0xcccccccc
0x4011c9: c7 40 14 cc cc cc cc mov dword [ eax + 0x14 ], 0xcccccccc
0x4011d0: c7 40 18 cc cc cc cc mov dword [ eax + 0x18 ], 0xcccccccc
0x4011d7: c7 40 1c cc cc cc cc mov dword [ eax + 0x1c ], 0xcccccccc
0x4011de: 83 e4 f0 and esp, 0xfffffff0
0x4011e1: a1 3c a0 40 00 mov eax, dword [ 0x40a03c ]
0x4011e6: 85 c0 test eax, eax
0x4011e8: 0f 85 92 02 00 00 jnz 0x401480 <___tmainCRTStartup+0x300>
0x4011ee: 64
0x4011ef: a1 18 00 00 00 mov eax, dword [ 0x18 ]
0x4011f4: 8b 35 80 b1 40 00 mov esi, dword [ 0x40b180 ]
0x4011fa: 8b 58 04 mov ebx, dword [ eax + 0x4 ]
0x4011fd: eb 15 jmp 0x401214 <___tmainCRTStartup+0x94>
0x4011ff: 90 nop
0x401200: 39 d8 cmp eax, ebx
0x401202: 0f 84 28 02 00 00 jz 0x401430 <___tmainCRTStartup+0x2b0>
0x401208: c7 04 24 e8 03 00 00 mov dword [ esp ], 0x3e8
0x40120f: ff d6 call esi
0x401211: 83 ec 04 sub esp, 0x4
0x401214: c7 44 24 08 00 00 00 00 mov dword [ esp + 0x8 ], 0x0
0x40121c: 89 5c 24 04 mov dword [ esp + 0x4 ], ebx
0x401220: c7 04 24 94 ad 40 00 mov dword [ esp ], 0x40ad94
0x401227: e8 94 15 00 00 call 0x4027c0 <_InterlockedCompareExchange_12>
0x40122c: 83 ec 0c sub esp, 0xc
0x40122f: 85 c0 test eax, eax
0x401231: 75 cd jnz 0x401200 <___tmainCRTStartup+0x80>
0x401233: a1 98 ad 40 00 mov eax, dword [ 0x40ad98 ]
0x401238: 31 db xor ebx, ebx
0x40123a: 83 f8 01 cmp eax, 0x1
0x40123d: 0f 84 00 02 00 00 jz 0x401443 <___tmainCRTStartup+0x2c3>
0x401243: a1 98 ad 40 00 mov eax, dword [ 0x40ad98 ]
0x401248: 85 c0 test eax, eax
0x40124a: 0f 84 41 02 00 00 jz 0x401491 <___tmainCRTStartup+0x311>
0x401250: c7 05 00 a0 40 00 01 00 00 00 mov dword [ 0x40a000 ], 0x1
0x40125a: a1 98 ad 40 00 mov eax, dword [ 0x40ad98 ]
0x40125f: 83 f8 01 cmp eax, 0x1
0x401262: 0f 84 f5 01 00 00 jz 0x40145d <___tmainCRTStartup+0x2dd>
0x401268: 85 db test ebx, ebx
0x40126a: 75 07 jnz 0x401273 <___tmainCRTStartup+0xf3>
0x40126c: f0 lock
0x40126d: 87 1d 94 ad 40 00 xchg ebx, dword [ 0x40ad94 ]
0x401273: a1 90 90 40 00 mov eax, dword [ 0x409090 ]
0x401278: 85 c0 test eax, eax
0x40127a: 74 1c jz 0x401298 <___tmainCRTStartup+0x118>
0x40127c: c7 44 24 08 00 00 00 00 mov dword [ esp + 0x8 ], 0x0
0x401284: c7 44 24 04 02 00 00 00 mov dword [ esp + 0x4 ], 0x2
0x40128c: c7 04 24 00 00 00 00 mov dword [ esp ], 0x0
0x401293: ff d0 call eax
0x401295: 83 ec 0c sub esp, 0xc
0x401298: e8 33 0a 00 00 call 0x401cd0 <pei386_runtime_relocator>
0x40129d: c7 04 24 00 18 40 00 mov dword [ esp ], 0x401800
0x4012a4: ff 15 7c b1 40 00 call dword [ 0x40b17c <SetUnhandledExceptionFilter> ]
0x4012aa: 83 ec 04 sub esp, 0x4
0x4012ad: a3 44 a0 40 00 mov dword [ 0x40a044 ], eax
0x4012b2: e8 a9 0f 00 00 call 0x402260 <___mingw_get_msvcrt_handle>
0x4012b7: c7 44 24 04 00 90 40 00 mov dword [ esp + 0x4 ], 0x409000 ; "_set_invalid_parameter_handler"
0x4012bf: 89 04 24 mov dword [ esp ], eax
0x4012c2: ff 15 54 b1 40 00 call dword [ 0x40b154 <GetProcAddress> ]
0x4012c8: 83 ec 08 sub esp, 0x8
0x4012cb: 85 c0 test eax, eax
0x4012cd: 74 09 jz 0x4012d8 <___tmainCRTStartup+0x158>
0x4012cf: c7 04 24 00 10 40 00 mov dword [ esp ], 0x401000
0x4012d6: ff d0 call eax
0x4012d8: e8 43 10 00 00 call 0x402320 <_fpreset>
0x4012dd: a1 bc b1 40 00 mov eax, dword [ 0x40b1bc ]
0x4012e2: 31 c9 xor ecx, ecx
0x4012e4: c7 05 88 ad 40 00 00 00 40 00 mov dword [ 0x40ad88 ], 0x400000
0x4012ee: 8b 00 mov eax, dword [ eax ]
0x4012f0: 85 c0 test eax, eax
0x4012f2: 75 16 jnz 0x40130a <___tmainCRTStartup+0x18a>
0x4012f4: eb 3e jmp 0x401334 <___tmainCRTStartup+0x1b4>
0x4012f6: 84 d2 test dl, dl
0x4012f8: 74 35 jz 0x40132f <___tmainCRTStartup+0x1af>
0x4012fa: 85 c9 test ecx, ecx
0x4012fc: 8d 74 26 00 lea esi, dword [ esi + 0x0 ]
0x401300: 74 22 jz 0x401324 <___tmainCRTStartup+0x1a4>
0x401302: b9 01 00 00 00 mov ecx, 0x1
0x401307: 83 c0 01 add eax, 0x1
0x40130a: 0f b6 10 movzx edx, byte [ eax ]
0x40130d: 80 fa 20 cmp dl, 0x20
0x401310: 7e e4 jle 0x4012f6 <___tmainCRTStartup+0x176>
0x401312: 89 cb mov ebx, ecx
0x401314: 83 f3 01 xor ebx, 0x1
0x401317: 80 fa 22 cmp dl, 0x22
0x40131a: 0f 44 cb cmovz ecx, ebx
0x40131d: eb e8 jmp 0x401307 <___tmainCRTStartup+0x187>
0x40131f: 90 nop
0x401320: 84 d2 test dl, dl
0x401322: 74 0b jz 0x40132f <___tmainCRTStartup+0x1af>
0x401324: 83 c0 01 add eax, 0x1
0x401327: 0f b6 10 movzx edx, byte [ eax ]
0x40132a: 80 fa 20 cmp dl, 0x20
0x40132d: 7e f1 jle 0x401320 <___tmainCRTStartup+0x1a0>
0x40132f: a3 84 ad 40 00 mov dword [ 0x40ad84 ], eax
0x401334: a1 3c a0 40 00 mov eax, dword [ 0x40a03c ]
0x401339: 85 c0 test eax, eax
0x40133b: 74 15 jz 0x401352 <___tmainCRTStartup+0x1d2>
0x40133d: 0f b7 55 d4 movzx edx, word [ ebp + 0xffffffd4 ]
0x401341: b8 0a 00 00 00 mov eax, 0xa
0x401346: f6 45 d0 01 test byte [ ebp + 0xffffffd0 ], 0x1
0x40134a: 0f 45 c2 cmovnz eax, edx
0x40134d: a3 00 80 40 00 mov dword [ 0x408000 ], eax
0x401352: 8b 15 04 a0 40 00 mov edx, dword [ 0x40a004 ]
0x401358: 31 db xor ebx, ebx
0x40135a: 8d 04 95 04 00 00 00 lea eax, dword [ edx * 0x2 + 0x4 ]
0x401361: 89 55 94 mov dword [ ebp + 0xffffff94 ], edx
0x401364: 89 04 24 mov dword [ esp ], eax
0x401367: e8 6c 61 00 00 call 0x4074d8 <function_4074d8>
0x40136c: 8b 3d 08 a0 40 00 mov edi, dword [ 0x40a008 ]
0x401372: 89 45 90 mov dword [ ebp + 0xffffff90 ], eax
0x401375: 8b 45 94 mov eax, dword [ ebp + 0xffffff94 ]
0x401378: 85 c0 test eax, eax
0x40137a: 7e 3e jle 0x4013ba <___tmainCRTStartup+0x23a>
0x40137c: 8d 74 26 00 lea esi, dword [ esi + 0x0 ]
0x401380: 8b 04 9f mov eax, dword [ edi + ebx * 0x2 ]
0x401383: 89 04 24 mov dword [ esp ], eax
0x401386: e8 55 61 00 00 call 0x4074e0 <function_4074e0>
0x40138b: 8d 70 01 lea esi, dword [ eax + 0x1 ]
0x40138e: 89 34 24 mov dword [ esp ], esi
0x401391: e8 42 61 00 00 call 0x4074d8 <function_4074d8>
0x401396: 8b 55 90 mov edx, dword [ ebp + 0xffffff90 ]
0x401399: 89 04 9a mov dword [ edx + ebx * 0x2 ], eax
0x40139c: 8b 14 9f mov edx, dword [ edi + ebx * 0x2 ]
0x40139f: 83 c3 01 add ebx, 0x1
0x4013a2: 89 74 24 08 mov dword [ esp + 0x8 ], esi
0x4013a6: 89 04 24 mov dword [ esp ], eax
0x4013a9: 89 54 24 04 mov dword [ esp + 0x4 ], edx
0x4013ad: e8 1e 61 00 00 call 0x4074d0 <function_4074d0>
0x4013b2: 3b 5d 94 cmp ebx, dword [ ebp + 0xffffff94 ]
0x4013b5: 75 c9 jnz 0x401380 <___tmainCRTStartup+0x200>
0x4013b7: c1 e3 02 shl ebx, 0x2
0x4013ba: 8b 45 90 mov eax, dword [ ebp + 0xffffff90 ]
0x4013bd: c7 04 18 00 00 00 00 mov dword [ eax + ebx * 0x0 ], 0x0
0x4013c4: a3 08 a0 40 00 mov dword [ 0x40a008 ], eax
0x4013c9: e8 e2 0f 00 00 call 0x4023b0 <___main>
0x4013ce: a1 a8 b1 40 00 mov eax, dword [ 0x40b1a8 ]
0x4013d3: 8b 15 0c a0 40 00 mov edx, dword [ 0x40a00c ]
0x4013d9: 89 10 mov dword [ eax ], edx
0x4013db: a1 0c a0 40 00 mov eax, dword [ 0x40a00c ]
0x4013e0: 89 44 24 08 mov dword [ esp + 0x8 ], eax
0x4013e4: a1 08 a0 40 00 mov eax, dword [ 0x40a008 ]
0x4013e9: 89 44 24 04 mov dword [ esp + 0x4 ], eax
0x4013ed: a1 04 a0 40 00 mov eax, dword [ 0x40a004 ]
0x4013f2: 89 04 24 mov dword [ esp ], eax
0x4013f5: e8 66 01 00 00 call 0x401560 <main>
0x4013fa: 8b 35 14 a0 40 00 mov esi, dword [ 0x40a014 ]
0x401400: 85 f6 test esi, esi
0x401402: a3 10 a0 40 00 mov dword [ 0x40a010 ], eax
0x401407: 0f 84 a7 00 00 00 jz 0x4014b4 <___tmainCRTStartup+0x334>
0x40140d: 8b 1d 00 a0 40 00 mov ebx, dword [ 0x40a000 ]
0x401413: 85 db test ebx, ebx
0x401415: 75 0a jnz 0x401421 <___tmainCRTStartup+0x2a1>
0x401417: e8 cc 60 00 00 call 0x4074e8 <function_4074e8>
0x40141c: a1 10 a0 40 00 mov eax, dword [ 0x40a010 ]
0x401421: 8d 65 f4 lea esp, dword [ ebp + 0xfffffff4 ]
0x401424: 5b pop ebx
0x401425: 5e pop esi
0x401426: 5f pop edi
0x401427: 5d pop ebp
0x401428: c3 ret
0x401429: 8d b4 26 00 00 00 00 lea esi, dword [ esi + 0x0 ]
0x401430: a1 98 ad 40 00 mov eax, dword [ 0x40ad98 ]
0x401435: bb 01 00 00 00 mov ebx, 0x1
0x40143a: 83 f8 01 cmp eax, 0x1
0x40143d: 0f 85 00 fe ff ff jnz 0x401243 <___tmainCRTStartup+0xc3>
0x401443: c7 04 24 1f 00 00 00 mov dword [ esp ], 0x1f
0x40144a: e8 a1 60 00 00 call 0x4074f0 <function_4074f0>
0x40144f: a1 98 ad 40 00 mov eax, dword [ 0x40ad98 ]
0x401454: 83 f8 01 cmp eax, 0x1
0x401457: 0f 85 0b fe ff ff jnz 0x401268 <___tmainCRTStartup+0xe8>
0x40145d: c7 44 24 04 08 c0 40 00 mov dword [ esp + 0x4 ], 0x40c008
0x401465: c7 04 24 00 c0 40 00 mov dword [ esp ], 0x40c000
0x40146c: e8 87 60 00 00 call 0x4074f8 <function_4074f8>
0x401471: c7 05 98 ad 40 00 02 00 00 00 mov dword [ 0x40ad98 ], 0x2
0x40147b: e9 e8 fd ff ff jmp 0x401268 <___tmainCRTStartup+0xe8>
0x401480: 89 14 24 mov dword [ esp ], edx
0x401483: ff 15 58 b1 40 00 call dword [ 0x40b158 <GetStartupInfoA> ]
0x401489: 83 ec 04 sub esp, 0x4
0x40148c: e9 5d fd ff ff jmp 0x4011ee <___tmainCRTStartup+0x6e>
0x401491: c7 05 98 ad 40 00 01 00 00 00 mov dword [ 0x40ad98 ], 0x1
0x40149b: c7 44 24 04 18 c0 40 00 mov dword [ esp + 0x4 ], 0x40c018
0x4014a3: c7 04 24 0c c0 40 00 mov dword [ esp ], 0x40c00c
0x4014aa: e8 49 60 00 00 call 0x4074f8 <function_4074f8>
0x4014af: e9 a6 fd ff ff jmp 0x40125a <___tmainCRTStartup+0xda>
0x4014b4: 89 04 24 mov dword [ esp ], eax
0x4014b7: e8 44 60 00 00 call 0x407500 <function_407500>
0x4014bc: 8d 74 26 00 lea esi, dword [ esi + 0x0 ]
; function: _WinMainCRTStartup at 0x4014c0 -- 0x4014df
0x4014c0: 83 ec 0c sub esp, 0xc
0x4014c3: c7 05 3c a0 40 00 01 00 00 00 mov dword [ 0x40a03c ], 0x1
0x4014cd: e8 fe 0e 00 00 call 0x4023d0 <__security_init_cookie>
0x4014d2: 83 c4 0c add esp, 0xc
0x4014d5: e9 a6 fc ff ff jmp 0x401180 <___tmainCRTStartup>
0x4014da: 8d b6 00 00 00 00 lea esi, dword [ esi + 0x0 ]
; function: _mainCRTStartup at 0x4014e0 -- 0x4014ff
0x4014e0: 83 ec 0c sub esp, 0xc
0x4014e3: c7 05 3c a0 40 00 00 00 00 00 mov dword [ 0x40a03c ], 0x0
0x4014ed: e8 de 0e 00 00 call 0x4023d0 <__security_init_cookie>
0x4014f2: 83 c4 0c add esp, 0xc
0x4014f5: e9 86 fc ff ff jmp 0x401180 <___tmainCRTStartup>
0x4014fa: 90 nop
0x4014fb: 90 nop
0x4014fc: 90 nop
0x4014fd: 90 nop
0x4014fe: 90 nop
0x4014ff: 90 nop
; function: ___gcc_register_frame at 0x401500 -- 0x40154f
0x401500: a1 4c 80 40 00 mov eax, dword [ 0x40804c ]
0x401505: 85 c0 test eax, eax
0x401507: 74 43 jz 0x40154c <___gcc_register_frame+0x4c>
0x401509: 55 push ebp
0x40150a: 89 e5 mov ebp, esp
0x40150c: 83 ec 18 sub esp, 0x18
0x40150f: c7 04 24 20 90 40 00 mov dword [ esp ], 0x409020 ; "libgcj-13.dll"
0x401516: ff 15 50 b1 40 00 call dword [ 0x40b150 <GetModuleHandleA> ]
0x40151c: ba 00 00 00 00 mov edx, 0x0
0x401521: 83 ec 04 sub esp, 0x4
0x401524: 85 c0 test eax, eax
0x401526: 74 16 jz 0x40153e <___gcc_register_frame+0x3e>
0x401528: c7 44 24 04 2e 90 40 00 mov dword [ esp + 0x4 ], 0x40902e ; "_Jv_RegisterClasses"
0x401530: 89 04 24 mov dword [ esp ], eax
0x401533: ff 15 54 b1 40 00 call dword [ 0x40b154 <GetProcAddress> ]
0x401539: 83 ec 08 sub esp, 0x8
0x40153c: 89 c2 mov edx, eax
0x40153e: 85 d2 test edx, edx
0x401540: 74 09 jz 0x40154b <___gcc_register_frame+0x4b>
0x401542: c7 04 24 4c 80 40 00 mov dword [ esp ], 0x40804c
0x401549: ff d2 call edx
0x40154b: c9 leave
0x40154c: f3 c3 rep ret
0x40154e: 66 90 xchg ax, ax
; function: ___gcc_deregister_frame at 0x401550 -- 0x40155f
0x401550: 55 push ebp
0x401551: 89 e5 mov ebp, esp
0x401553: 5d pop ebp
0x401554: c3 ret
0x401555: 90 nop
0x401556: 90 nop
0x401557: 90 nop
0x401558: 90 nop
0x401559: 90 nop
0x40155a: 90 nop
0x40155b: 90 nop
0x40155c: 90 nop
0x40155d: 90 nop
0x40155e: 90 nop
0x40155f: 90 nop
; function: main at 0x401560 -- 0x40160f
0x401560: 55 push ebp
0x401561: 89 e5 mov ebp, esp
0x401563: 83 e4 f0 and esp, 0xfffffff0
0x401566: 83 ec 30 sub esp, 0x30
0x401569: e8 42 0e 00 00 call 0x4023b0 <___main>
0x40156e: c7 44 24 28 00 00 00 00 mov dword [ esp + 0x28 ], 0x0
0x401576: c7 44 24 24 00 00 00 00 mov dword [ esp + 0x24 ], 0x0
0x40157e: c7 44 24 20 01 00 00 00 mov dword [ esp + 0x20 ], 0x1
0x401586: c7 04 24 44 90 40 00 mov dword [ esp ], 0x409044 ; "Enter n range: "
0x40158d: e8 76 5f 00 00 call 0x407508 <function_407508>
0x401592: 8d 44 24 18 lea eax, dword [ esp + 0x18 ]
0x401596: 89 44 24 04 mov dword [ esp + 0x4 ], eax
0x40159a: c7 04 24 54 90 40 00 mov dword [ esp ], 0x409054 ; "%d"
0x4015a1: e8 6a 5f 00 00 call 0x407510 <function_407510>
0x4015a6: c7 44 24 2c 01 00 00 00 mov dword [ esp + 0x2c ], 0x1
0x4015ae: eb 2b jmp 0x4015db <main+0x7b>
0x4015b0: 8b 44 24 24 mov eax, dword [ esp + 0x24 ]
0x4015b4: 01 44 24 28 add dword [ esp + 0x28 ], eax
0x4015b8: 8b 44 24 20 mov eax, dword [ esp + 0x20 ]
0x4015bc: 8b 54 24 24 mov edx, dword [ esp + 0x24 ]
0x4015c0: 01 d0 add eax, edx
0x4015c2: 89 44 24 1c mov dword [ esp + 0x1c ], eax
0x4015c6: 8b 44 24 20 mov eax, dword [ esp + 0x20 ]
0x4015ca: 89 44 24 24 mov dword [ esp + 0x24 ], eax
0x4015ce: 8b 44 24 1c mov eax, dword [ esp + 0x1c ]
0x4015d2: 89 44 24 20 mov dword [ esp + 0x20 ], eax
0x4015d6: 83 44 24 2c 01 add dword [ esp + 0x2c ], 0x1
0x4015db: 8b 44 24 18 mov eax, dword [ esp + 0x18 ]
0x4015df: 39 44 24 2c cmp dword [ esp + 0x2c ], eax
0x4015e3: 7e cb jle 0x4015b0 <main+0x50>
0x4015e5: 8b 44 24 18 mov eax, dword [ esp + 0x18 ]
0x4015e9: 8b 54 24 28 mov edx, dword [ esp + 0x28 ]
0x4015ed: 89 54 24 08 mov dword [ esp + 0x8 ], edx
0x4015f1: 89 44 24 04 mov dword [ esp + 0x4 ], eax
0x4015f5: c7 04 24 58 90 40 00 mov dword [ esp ], 0x409058 ; "Total sum of fibonacci series of given range %d is %d"
0x4015fc: e8 07 5f 00 00 call 0x407508 <function_407508>
0x401601: b8 00 00 00 00 mov eax, 0x0
0x401606: c9 leave
0x401607: c3 ret
0x401608: 66 90 xchg ax, ax
0x40160a: 66 90 xchg ax, ax
0x40160c: 66 90 xchg ax, ax
0x40160e: 66 90 xchg ax, ax
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.