Isoraqathedh

Untitled

Nov 28th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 5.19 KB | None | 0 0
  1. CL-USER> (defun fizzbuzz ()
  2.            (flet ((multiple-of-p (number factor)
  3.                     (zerop (mod number factor))))
  4.              (loop for i from 1 to 100
  5.                    do (print (cond ((multiple-of-p i 15) "fizzbuzz")
  6.                                    ((multiple-of-p i 5)  "buzz")
  7.                                    ((multiple-of-p i 3)  "fizz")
  8.                                    (t i))))))
  9. FIZZBUZZ
  10. CL-USER> (disassemble 'fizzbuzz)
  11. ; disassembly for FIZZBUZZ
  12. ; Size: 355 bytes. Origin: #x1006F6D3CF (segment 1 of 2)
  13. ; 3CF:       498B4C2460       MOV RCX, [R12+96]               ; thread.binding-stack-pointer
  14.                                                               ; no-arg-parsing entry point
  15. ; 3D4:       48894DF8         MOV [RBP-8], RCX
  16. ; 3D8:       84042500000F20   TEST AL, [#x200F0000]           ; safepoint
  17. ; 3DF:       BF02000000       MOV EDI, 2
  18. ; 3E4:       EB6E             JMP L2
  19. ; 3E6:       660F1F840000000000 NOP
  20. ; 3EF:       90               NOP
  21. ; 3F0: L0:   488BF7           MOV RSI, RDI
  22. ; 3F3:       488BCD           MOV RCX, RBP
  23. ; 3F6:       48897DE8         MOV [RBP-24], RDI
  24. ; 3FA:       488D4424F0       LEA RAX, [RSP-16]
  25. ; 3FF:       4883EC28         SUB RSP, 40
  26. ; 403:       BB1E000000       MOV EBX, 30
  27. ; 408:       488908           MOV [RAX], RCX
  28. ; 40B:       488BE8           MOV RBP, RAX
  29. ; 40E:       E8D9000000       CALL L5
  30. ; 413:       488B7DE8         MOV RDI, [RBP-24]
  31. ; 417:       4881F917001020   CMP RCX, 537919511
  32. ; 41E:       744F             JEQ L3
  33. ; 420:       488B1539FFFFFF   MOV RDX, [RIP-199]              ; "fizzbuzz"
  34. ; 427: L1:   488D5C24F0       LEA RBX, [RSP-16]
  35. ; 42C:       4883EC18         SUB RSP, 24
  36. ; 430:       48897DE8         MOV [RBP-24], RDI
  37. ; 434:       488B052DFFFFFF   MOV RAX, [RIP-211]              ; #<FDEFINITION for PRINT>
  38. ; 43B:       B902000000       MOV ECX, 2
  39. ; 440:       48892B           MOV [RBX], RBP
  40. ; 443:       488BEB           MOV RBP, RBX
  41. ; 446:       FF5009           CALL QWORD PTR [RAX+9]
  42. ; 449:       488B7DE8         MOV RDI, [RBP-24]
  43. ; 44D:       488D4F02         LEA RCX, [RDI+2]
  44. ; 451:       488BF9           MOV RDI, RCX
  45. ; 454: L2:   84042500000F20   TEST AL, [#x200F0000]           ; safepoint
  46. ; 45B:       4881FFC8000000   CMP RDI, 200
  47. ; 462:       7E8C             JLE L0
  48. ; 464:       BA17001020       MOV EDX, 537919511
  49. ; 469:       488BE5           MOV RSP, RBP
  50. ; 46C:       F8               CLC
  51. ; 46D:       5D               POP RBP
  52. ; 46E:       C3               RET
  53. ; 46F: L3:   488BF7           MOV RSI, RDI
  54. ; 472:       488BCD           MOV RCX, RBP
  55. ; 475:       48897DE8         MOV [RBP-24], RDI
  56. ; 479:       488D4424F0       LEA RAX, [RSP-16]
  57. ; 47E:       4883EC28         SUB RSP, 40
  58. ; 482:       BB0A000000       MOV EBX, 10
  59. ; 487:       488908           MOV [RAX], RCX
  60. ; 48A:       488BE8           MOV RBP, RAX
  61. ; 48D:       E85A000000       CALL L5
  62. ; 492:       488B7DE8         MOV RDI, [RBP-24]
  63. ; 496:       4881F917001020   CMP RCX, 537919511
  64. ; 49D:       7541             JNE L4
  65. ; 49F:       488BF7           MOV RSI, RDI
  66. ; 4A2:       488BCD           MOV RCX, RBP
  67. ; 4A5:       48897DE8         MOV [RBP-24], RDI
  68. ; 4A9:       488D4424F0       LEA RAX, [RSP-16]
  69. ; 4AE:       4883EC28         SUB RSP, 40
  70. ; 4B2:       BB06000000       MOV EBX, 6
  71. ; 4B7:       488908           MOV [RAX], RCX
  72. ; 4BA:       488BE8           MOV RBP, RAX
  73. ; 4BD:       E82A000000       CALL L5
  74. ; 4C2:       488B7DE8         MOV RDI, [RBP-24]
  75. ; 4C6:       488BDF           MOV RBX, RDI
  76. ; 4C9:       488B15A0FEFFFF   MOV RDX, [RIP-352]              ; "fizz"
  77. ; 4D0:       4881F917001020   CMP RCX, 537919511
  78. ; 4D7:       480F44D3         CMOVEQ RDX, RBX
  79. ; 4DB:       E947FFFFFF       JMP L1
  80. ; 4E0: L4:   488B1591FEFFFF   MOV RDX, [RIP-367]              ; "buzz"
  81. ; 4E7:       E93BFFFFFF       JMP L1
  82. ; 4EC: L5:   8F4508           POP QWORD PTR [RBP+8]
  83. ; Origin #x1006F6D4EF (segment 2 of 2)
  84. ; 4EF:       498B4C2460       MOV RCX, [R12+96]               ; thread.binding-stack-pointer
  85.                                                               ; no-arg-parsing entry point
  86. ; 4F4:       48894DF0         MOV [RBP-16], RCX
  87. ; 4F8:       84042500000F20   TEST AL, [#x200F0000]           ; safepoint
  88. ; 4FF:       4885DB           TEST RBX, RBX
  89. ; 502:       7424             JEQ L6
  90. ; 504:       488BC6           MOV RAX, RSI
  91. ; 507:       4899             CQO
  92. ; 509:       48F7FB           IDIV RAX, RBX
  93. ; 50C:       48D1E0           SHL RAX, 1
  94. ; 50F:       4885D2           TEST RDX, RDX
  95. ; 512:       B917001020       MOV ECX, 537919511
  96. ; 517:       41BB4F001020     MOV R11D, 537919567             ; T
  97. ; 51D:       490F44CB         CMOVEQ RCX, R11
  98. ; 521:       488BE5           MOV RSP, RBP
  99. ; 524:       5D               POP RBP
  100. ; 525:       C3               RET
  101. ; 526:       CC10             BREAK 16                        ; Invalid argument count trap
  102. ; 528: L6:   CC0A             BREAK 10                        ; error trap
  103. ; 52A:       07               BYTE #X07
  104. ; 52B:       08               BYTE #X08                       ; DIVISION-BY-ZERO-ERROR
  105. ; 52C:       FE1A03           BYTE #XFE, #X1A, #X03           ; RSI
  106. ; 52F:       FE9A01           BYTE #XFE, #X9A, #X01           ; RBX
  107. NIL
  108. CL-USER>
Advertisement
Add Comment
Please, Sign In to add comment