Ask user to enter two numbers up to 4 294 967 295 Make sure

Ask user to enter two numbers up to 4, 294, 967, 295. Make sure numbers are correct and within the range. Pack the numbers into binary (up to 4-bytes). Multiply the numbers to get a binary number up to 8-bytes. Generate 8-byte long power of tens and store them into memory. Use Successive Subtraction method to convert 8-byte binary result into 20-digit decimal number. Output the result as follow: 85000 times 125000 = 10625000000 Ask if user wants to Try to output the result as follow: 85,000 125,000 = 10, 625,000,000 no extra spaces are displayed.

Solution

.Ltext0: .section .rodata .LC0: 0000 456E7465 .string \"Enter the first number : \" 72207468 65206669 72737420 6E756D62 .LC1: 001a 257300 .string \"%s\" .LC2: 001d 456E7465 .string \"Enter the second number : \" 72207468 65207365 636F6E64 206E756D .align 8 .LC3: 0038 4D756C74 .string \"Multiplication of two numbers : \" 69706C69 63617469 6F6E206F 66207477 .text .globl main main: .LFB0: .cfi_startproc 0000 55 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 0001 4889E5 movq %rsp, %rbp .cfi_def_cfa_register 6 0004 4881EC40 subq $20032, %rsp 4E0000 000b 64488B04 movq %fs:40, %rax 25280000 00 0014 488945F8 movq %rax, -8(%rbp) 0018 31C0 xorl %eax, %eax 001a BF000000 movl $.LC0, %edi 00 001f B8000000 movl $0, %eax 00 0024 E8000000 call printf 00 0029 488D85D0 leaq -20016(%rbp), %rax B1FFFF 0030 4889C6 movq %rax, %rsi 0033 BF000000 movl $.LC1, %edi 00 0038 B8000000 movl $0, %eax 00 003d E8000000 call __isoc99_scanf 00 0042 BF000000 movl $.LC2, %edi 00 0047 B8000000 movl $0, %eax 00 004c E8000000 call printf 00 0051 488D85E0 leaq -10016(%rbp), %rax D8FFFF 0058 4889C6 movq %rax, %rsi 005b BF000000 movl $.LC1, %edi 00 0060 B8000000 movl $0, %eax 00 0065 E8000000 call __isoc99_scanf 00 006a BF000000 movl $.LC3, %edi 00 006f B8000000 movl $0, %eax 00 0074 E8000000 call printf 00 0079 488D95E0 leaq -10016(%rbp), %rdx D8FFFF 0080 488D85D0 leaq -20016(%rbp), %rax B1FFFF 0087 4889D6 movq %rdx, %rsi 008a 4889C7 movq %rax, %rdi 008d E8000000 call multiply 00 0092 488985C8 movq %rax, -20024(%rbp) B1FFFF 0099 488B85C8 movq -20024(%rbp), %rax B1FFFF 00a0 4889C6 movq %rax, %rsi 00a3 BF000000 movl $.LC1, %edi 00 00a8 B8000000 movl $0, %eax 00 00ad E8000000 call printf 00 00b2 B8000000 movl $0, %eax 00 00b7 488B4DF8 movq -8(%rbp), %rcx 00bb 6448330C xorq %fs:40, %rcx 25280000 00 00c4 7405 je .L3 00c6 E8000000 call __stack_chk_fail 00 .L3: 00cb C9 leave .cfi_def_cfa 7, 8 00cc C3 ret .cfi_endproc .LFE0: .globl multiply multiply: .LFB1: .cfi_startproc 00cd 55 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 00ce 4889E5 movq %rsp, %rbp .cfi_def_cfa_register 6 00d1 4881EC70 subq $20080, %rsp 4E0000 00d8 4889BD98 movq %rdi, -20072(%rbp) B1FFFF 00df 4889B590 movq %rsi, -20080(%rbp) B1FFFF 00e6 64488B04 movq %fs:40, %rax 25280000 00 00ef 488945F8 movq %rax, -8(%rbp) 00f3 31C0 xorl %eax, %eax 00f5 C785ACB1 movl $0, -20052(%rbp) FFFF0000 0000 00ff C785B0B1 movl $0, -20048(%rbp) FFFF0000 0000 0109 48C785C0 movq $0, -20032(%rbp) B1FFFF00 000000 0114 48C785C8 movq $0, -20024(%rbp) B1FFFF00 000000 011f 488B8598 movq -20072(%rbp), %rax B1FFFF 0126 4889C7 movq %rax, %rdi 0129 E8000000 call strlen 00 012e 83E801 subl $1, %eax 0131 8985B8B1 movl %eax, -20040(%rbp) FFFF 0137 488B8590 movq -20080(%rbp), %rax B1FFFF 013e 4889C7 movq %rax, %rdi 0141 E8000000 call strlen 00 0146 83E801 subl $1, %eax 0149 8985BCB1 movl %eax, -20036(%rbp) FFFF 014f C785A4B1 movl $0, -20060(%rbp) FFFF0000 0000 0159 EB35 jmp .L5 .L6: 0189 8385A4B1 addl $1, -20060(%rbp) FFFF01 015b 8B85A4B1 movl -20060(%rbp), %eax FFFF 0161 4863D0 movslq %eax, %rdx 0164 488B8598 movq -20072(%rbp), %rax B1FFFF 016b 4801D0 addq %rdx, %rax 016e 8B95A4B1 movl -20060(%rbp), %edx FFFF 0174 4863CA movslq %edx, %rcx 0177 488B9598 movq -20072(%rbp), %rdx B1FFFF 017e 4801CA addq %rcx, %rdx 0181 0FB612 movzbl (%rdx), %edx 0184 83EA30 subl $48, %edx 0187 8810 movb %dl, (%rax) .L5: 0190 8B85A4B1 movl -20060(%rbp), %eax FFFF 0196 3B85B8B1 cmpl -20040(%rbp), %eax FFFF 019c 7EBD jle .L6 019e C785A4B1 movl $0, -20060(%rbp) FFFF0000 0000 01a8 EB35 jmp .L7 .L8: 01d8 8385A4B1 addl $1, -20060(%rbp) FFFF01 01aa 8B85A4B1 movl -20060(%rbp), %eax FFFF 01b0 4863D0 movslq %eax, %rdx 01b3 488B8590 movq -20080(%rbp), %rax B1FFFF 01ba 4801D0 addq %rdx, %rax 01bd 8B95A4B1 movl -20060(%rbp), %edx FFFF 01c3 4863CA movslq %edx, %rcx 01c6 488B9590 movq -20080(%rbp), %rdx B1FFFF 01cd 4801CA addq %rcx, %rdx 01d0 0FB612 movzbl (%rdx), %edx 01d3 83EA30 subl $48, %edx 01d6 8810 movb %dl, (%rax) .L7: 01df 8B85A4B1 movl -20060(%rbp), %eax FFFF 01e5 3B85BCB1 cmpl -20036(%rbp), %eax FFFF 01eb 7EBD jle .L8 01ed 8B85BCB1 movl -20036(%rbp), %eax FFFF 01f3 8985A4B1 movl %eax, -20060(%rbp) FFFF 01f9 E98F0100 jmp .L9 00 .L14: 01fe 48C785C0 movq $0, -20032(%rbp) B1FFFF00 000000 0209 8B85B8B1 movl -20040(%rbp), %eax FFFF 020f 8985A8B1 movl %eax, -20056(%rbp) FFFF 0215 E9FF0000 jmp .L10 00 .L11: 0312 83ADA8B1 subl $1, -20056(%rbp) FFFF01 021a 8BB5ACB1 movl -20052(%rbp), %esi FFFF 0220 8D4601 leal 1(%rsi), %eax 0223 8985ACB1 movl %eax, -20052(%rbp) FFFF 0229 8B85A4B1 movl -20060(%rbp), %eax FFFF 022f 4863D0 movslq %eax, %rdx 0232 488B8590 movq -20080(%rbp), %rax B1FFFF 0239 4801D0 addq %rdx, %rax 023c 0FB600 movzbl (%rax), %eax 023f 0FBED0 movsbl %al, %edx 0242 8B85A8B1 movl -20056(%rbp), %eax FFFF 0248 4863C8 movslq %eax, %rcx 024b 488B8598 movq -20072(%rbp), %rax B1FFFF 0252 4801C8 addq %rcx, %rax 0255 0FB600 movzbl (%rax), %eax 0258 0FBEC0 movsbl %al, %eax 025b 0FAFC2 imull %edx, %eax 025e 4863D0 movslq %eax, %rdx 0261 488B85C0 movq -20032(%rbp), %rax B1FFFF 0268 488D0C02 leaq (%rdx,%rax), %rcx 026c 48BA6766 movabsq $7378697629483820647, %rdx 66666666 6666 0276 4889C8 movq %rcx, %rax 0279 48F7EA imulq %rdx 027c 48C1FA02 sarq $2, %rdx 0280 4889C8 movq %rcx, %rax 0283 48C1F83F sarq $63, %rax 0287 4829C2 subq %rax, %rdx 028a 4889D0 movq %rdx, %rax 028d 48C1E002 salq $2, %rax 0291 4801D0 addq %rdx, %rax 0294 4801C0 addq %rax, %rax 0297 4829C1 subq %rax, %rcx 029a 4889CA movq %rcx, %rdx 029d 4863C6 movslq %esi, %rax 02a0 889405E0 movb %dl, -10016(%rbp,%rax) D8FFFF 02a7 8B85A4B1 movl -20060(%rbp), %eax FFFF 02ad 4863D0 movslq %eax, %rdx 02b0 488B8590 movq -20080(%rbp), %rax B1FFFF 02b7 4801D0 addq %rdx, %rax 02ba 0FB600 movzbl (%rax), %eax 02bd 0FBED0 movsbl %al, %edx 02c0 8B85A8B1 movl -20056(%rbp), %eax FFFF 02c6 4863C8 movslq %eax, %rcx 02c9 488B8598 movq -20072(%rbp), %rax B1FFFF 02d0 4801C8 addq %rcx, %rax 02d3 0FB600 movzbl (%rax), %eax 02d6 0FBEC0 movsbl %al, %eax 02d9 0FAFC2 imull %edx, %eax 02dc 4863D0 movslq %eax, %rdx 02df 488B85C0 movq -20032(%rbp), %rax B1FFFF 02e6 488D0C02 leaq (%rdx,%rax), %rcx 02ea 48BA6766 movabsq $7378697629483820647, %rdx 66666666 6666 02f4 4889C8 movq %rcx, %rax 02f7 48F7EA imulq %rdx 02fa 48C1FA02 sarq $2, %rdx 02fe 4889C8 movq %rcx, %rax 0301 48C1F83F sarq $63, %rax 0305 4829C2 subq %rax, %rdx 0308 4889D0 movq %rdx, %rax 030b 488985C0 movq %rax, -20032(%rbp) B1FFFF .L10: 0319 83BDA8B1 cmpl $0, -20056(%rbp) FFFF00 0320 0F89F4FE jns .L11 FFFF 0326 8B85ACB1 movl -20052(%rbp), %eax FFFF 032c 8D5001 leal 1(%rax), %edx 032f 8995ACB1 movl %edx, -20052(%rbp) FFFF 0335 488B95C0 movq -20032(%rbp), %rdx B1FFFF 033c 4898 cltq 033e 889405E0 movb %dl, -10016(%rbp,%rax) D8FFFF 0345 8385B0B1 addl $1, -20048(%rbp) FFFF01 034c C785B4B1 movl $0, -20044(%rbp) FFFF0000 0000 0356 EB20 jmp .L12 .L13: 0371 8385B4B1 addl $1, -20044(%rbp) FFFF01 0358 8B85ACB1 movl -20052(%rbp), %eax FFFF 035e 8D5001 leal 1(%rax), %edx 0361 8995ACB1 movl %edx, -20052(%rbp) FFFF 0367 4898 cltq 0369 C68405E0 movb $0, -10016(%rbp,%rax) D8FFFF00 .L12: 0386 83ADA4B1 subl $1, -20060(%rbp) FFFF01 0378 8B85B4B1 movl -20044(%rbp), %eax FFFF 037e 3B85B0B1 cmpl -20048(%rbp), %eax FFFF 0384 7CD2 jl .L13 .L9: 038d 83BDA4B1 cmpl $0, -20060(%rbp) FFFF00 0394 0F8964FE jns .L14 FFFF 039a C785ACB1 movl $0, -20052(%rbp) FFFF0000 0000 03a4 48C785C0 movq $0, -20032(%rbp) B1FFFF00 000000 03af C785A4B1 movl $0, -20060(%rbp) FFFF0000 0000 03b9 E9260100 jmp .L15 00 .L19: 03be 48C785C8 movq $0, -20024(%rbp) B1FFFF00 000000 03c9 C785B4B1 movl $0, -20044(%rbp) FFFF0000 0000 03d3 C785A8B1 movl $1, -20056(%rbp) FFFF0100 0000 03dd EB57 jmp .L16 .L18: 03df 8B95B8B1 movl -20040(%rbp), %edx FFFF 03e5 8B85A8B1 movl -20056(%rbp), %eax FFFF 03eb 01D0 addl %edx, %eax 03ed 3B85A4B1 cmpl -20060(%rbp), %eax FFFF 03f3 7C23 jl .L17 03f5 8B95B4B1 movl -20044(%rbp), %edx FFFF 03fb 8B85A4B1 movl -20060(%rbp), %eax FFFF 0401 01D0 addl %edx, %eax 0403 4898 cltq 0405 0FB68405 movzbl -10016(%rbp,%rax), %eax E0D8FFFF 040d 480FBEC0 movsbq %al, %rax 0411 480185C8 addq %rax, -20024(%rbp) B1FFFF .L17: 042f 8385A8B1 addl $1, -20056(%rbp) FFFF01 0418 8B95A8B1 movl -20056(%rbp), %edx FFFF 041e 8B85B8B1 movl -20040(%rbp), %eax FFFF 0424 01D0 addl %edx, %eax 0426 83C001 addl $1, %eax 0429 0185B4B1 addl %eax, -20044(%rbp) FFFF .L16: 04dd 8385A4B1 addl $1, -20060(%rbp) FFFF01 0436 8B85BCB1 movl -20036(%rbp), %eax FFFF 043c 83C001 addl $1, %eax 043f 3B85A8B1 cmpl -20056(%rbp), %eax FFFF 0445 7D98 jge .L18 0447 8BB5ACB1 movl -20052(%rbp), %esi FFFF 044d 8D4601 leal 1(%rsi), %eax 0450 8985ACB1 movl %eax, -20052(%rbp) FFFF 0456 488B95C8 movq -20024(%rbp), %rdx B1FFFF 045d 488B85C0 movq -20032(%rbp), %rax B1FFFF 0464 488D0C02 leaq (%rdx,%rax), %rcx 0468 48BA6766 movabsq $7378697629483820647, %rdx 66666666 6666 0472 4889C8 movq %rcx, %rax 0475 48F7EA imulq %rdx 0478 48C1FA02 sarq $2, %rdx 047c 4889C8 movq %rcx, %rax 047f 48C1F83F sarq $63, %rax 0483 4829C2 subq %rax, %rdx 0486 4889D0 movq %rdx, %rax 0489 48C1E002 salq $2, %rax 048d 4801D0 addq %rdx, %rax 0490 4801C0 addq %rax, %rax 0493 4829C1 subq %rax, %rcx 0496 4889CA movq %rcx, %rdx 0499 4863C6 movslq %esi, %rax 049c 889405D0 movb %dl, -20016(%rbp,%rax) B1FFFF 04a3 488B95C8 movq -20024(%rbp), %rdx B1FFFF 04aa 488B85C0 movq -20032(%rbp), %rax B1FFFF 04b1 488D0C02 leaq (%rdx,%rax), %rcx 04b5 48BA6766 movabsq $7378697629483820647, %rdx 66666666 6666 04bf 4889C8 movq %rcx, %rax 04c2 48F7EA imulq %rdx 04c5 48C1FA02 sarq $2, %rdx 04c9 4889C8 movq %rcx, %rax 04cc 48C1F83F sarq $63, %rax 04d0 4829C2 subq %rax, %rdx 04d3 4889D0 movq %rdx, %rax 04d6 488985C0 movq %rax, -20032(%rbp) B1FFFF .L15: 04e4 8B95B8B1 movl -20040(%rbp), %edx FFFF 04ea 8B85BCB1 movl -20036(%rbp), %eax FFFF 04f0 01D0 addl %edx, %eax 04f2 83C002 addl $2, %eax 04f5 3B85A4B1 cmpl -20060(%rbp), %eax FFFF 04fb 0F8FBDFE jg .L19 FFFF 0501 488B85C0 movq -20032(%rbp), %rax B1FFFF 0508 89C2 movl %eax, %edx 050a 8B85ACB1 movl -20052(%rbp), %eax FFFF 0510 4898 cltq 0512 889405D0 movb %dl, -20016(%rbp,%rax) B1FFFF 0519 C785A8B1 movl $0, -20056(%rbp) FFFF0000 0000 0523 8B85ACB1 movl -20052(%rbp), %eax FFFF 0529 83E801 subl $1, %eax 052c 8985A4B1 movl %eax, -20060(%rbp) FFFF 0532 EB32 jmp .L20 .L21: 055f 83ADA4B1 subl $1, -20060(%rbp) FFFF01 0534 8B85A8B1 movl -20056(%rbp), %eax FFFF 053a 8D5001 leal 1(%rax), %edx 053d 8995A8B1 movl %edx, -20056(%rbp) FFFF 0543 8B95A4B1 movl -20060(%rbp), %edx FFFF 0549 4863D2 movslq %edx, %rdx 054c 0FB69415 movzbl -20016(%rbp,%rdx), %edx D0B1FFFF 0554 83C230 addl $48, %edx 0557 4898 cltq 0559 88900000 movb %dl, mul.3102(%rax) 0000 .L20: 0566 83BDA4B1 cmpl $0, -20060(%rbp) FFFF00 056d 79C5 jns .L21 056f 8B85A8B1 movl -20056(%rbp), %eax FFFF 0575 4898 cltq 0577 C6800000 movb $0, mul.3102(%rax) 000000 057e B8000000 movl $mul.3102, %eax 00 0583 488B7DF8 movq -8(%rbp), %rdi 0587 6448333C xorq %fs:40, %rdi 25280000 00 0590 7405 je .L23 0592 E8000000 call __stack_chk_fail 00 .L23: 0597 C9 leave .cfi_def_cfa 7, 8 0598 C3 ret .cfi_endproc .LFE1: .local mul.3102 .comm mul.3102,10000,32 .Letext0:
 Ask user to enter two numbers up to 4, 294, 967, 295. Make sure numbers are correct and within the range. Pack the numbers into binary (up to 4-bytes). Multipl
 Ask user to enter two numbers up to 4, 294, 967, 295. Make sure numbers are correct and within the range. Pack the numbers into binary (up to 4-bytes). Multipl

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site