fork(4) download
  1. .comm x,4,4
  2. .comm y,4,4
  3.  
  4. .section .rodata
  5.  
  6. format1: .string "Div : %d / %d = %g\n"
  7. format2: .string "Mod : %d %% %d = %d\n"
  8. format3: .string "%d %d"
  9.  
  10. .text
  11. .globl main
  12. .type main, @function
  13. main:
  14. subl $32, %esp # allocate space, preserve alignment
  15.  
  16. movl $format3, (%esp)
  17. movl $x, 4(%esp)
  18. movl $y, 8(%esp)
  19. call scanf
  20.  
  21. # operation divide
  22. fildl x
  23. fidivl y
  24. fstpl 12(%esp) # x / y
  25.  
  26. movl $format1, (%esp)
  27. movl x, %eax
  28. movl %eax, 4(%esp)
  29. movl y, %eax
  30. movl %eax, 8(%esp)
  31. call printf
  32.  
  33. # operation modulo
  34. movl x, %eax
  35. cltd
  36. idivl y
  37. movl $format2, (%esp)
  38. movl x, %eax
  39. movl %eax, 4(%esp)
  40. movl y, %eax
  41. movl %eax, 8(%esp)
  42. movl %edx, 12(%esp)
  43. call printf
  44.  
  45. addl $32, %esp
  46. xor %eax, %eax
  47. ret
Success #stdin #stdout 0.02s 1528KB
stdin
3 4
stdout
Div : 3 / 4 = 0.75
Mod : 3 % 4 = 3