Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. .data
  2. one: .int 1
  3. print: .asciz "%llx"
  4. zprint: .asciz "%016llx"
  5. nl: .asciz "\n"
  6. .text
  7. .global mul64p
  8. mul64p:
  9. push %ebp
  10. push %edi
  11. push %esi
  12. push %ebx
  13. movl %esp, %ebp
  14.  
  15. subl $16, %esp
  16. movl 20(%ebp), %eax
  17. mull 28(%ebp)
  18. movl %eax, -16(%ebp)
  19. movl %edx, -12(%ebp)
  20. movl 24(%ebp), %eax
  21. mull 32(%ebp)
  22. movl %eax, -8(%ebp)
  23. movl %edx, -4(%ebp)
  24. movl 20(%ebp), %eax
  25. mull 32(%ebp)
  26. addl %eax, -12(%ebp)
  27. adcl %edx, -8(%ebp)
  28. adcl $0, -4(%ebp)
  29. movl 24(%ebp), %eax
  30. mull 28(%ebp)
  31. addl %eax, -12(%ebp)
  32. adcl %edx, -8(%ebp)
  33. adcl $0, -4(%ebp)
  34.  
  35. xorl %edi, %edi
  36. xorl %esi, %esi
  37. cmpl $0, 12(%esp)
  38. cmove one, %edi
  39. cmpl $0, 8(%esp)
  40. cmove one, %esi
  41. addl %esi, %edi
  42. movl $print, %ebx
  43. movl $zprint, %eax
  44. cmpl $2, %edi
  45. cmovne %eax, %ebx
  46. cmpl $2, %edi
  47. je L1
  48. pushl 12(%esp)
  49. pushl 12(%esp)
  50. push $print
  51. call printf
  52. addl $12, %esp
  53. L1: push %ebx
  54. call printf
  55. push $nl
  56. call printf
  57. xorl %eax, %eax
  58. addl $24, %esp
  59.  
  60. popl %ebx
  61. popl %esi
  62. popl %edi
  63. popl %ebp
  64. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement