Ask user to enter two numbers up to 4, 294, 967, 295. Make sure numbers are corr
ID: 3929415 • Letter: A
Question
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.Explanation / Answer
.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:
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.