Skip to content

Instantly share code, notes, and snippets.

@barcharcraz
Created August 19, 2014 22:17
Show Gist options
  • Save barcharcraz/cc4a023b8f03a2ac9243 to your computer and use it in GitHub Desktop.
Save barcharcraz/cc4a023b8f03a2ac9243 to your computer and use it in GitHub Desktop.
working version
```
fizzbuzz!fizzbuzzInit:
00ae2510 55 push ebp
00ae2511 8bec mov ebp,esp
00ae2513 83ec28 sub esp,28h
00ae2516 c745dc40e9b100 mov dword ptr [ebp-24h],offset fizzbuzz!nimNaN+0x7b00 (00b1e940)
00ae251d c745e44ce9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b0c (00b1e94c)
00ae2524 c745e000000000 mov dword ptr [ebp-20h],0
00ae252b 33c0 xor eax,eax
00ae252d 668945e8 mov word ptr [ebp-18h],ax
00ae2531 8d4dd8 lea ecx,[ebp-28h]
00ae2534 51 push ecx
00ae2535 e846ffffff call fizzbuzz!systemDatInit+0x7310 (00ae2480)
00ae253a 83c404 add esp,4
00ae253d c745e00f060000 mov dword ptr [ebp-20h],60Fh
00ae2544 c745e45ce9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b1c (00b1e95c)
00ae254b c745fc01000000 mov dword ptr [ebp-4],1
00ae2552 c745e010060000 mov dword ptr [ebp-20h],610h
00ae2559 c745e468e9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b28 (00b1e968)
fizzbuzz!fizzbuzzInit+0x50:
00ae2560 ba01000000 mov edx,1
00ae2565 85d2 test edx,edx
00ae2567 0f84bb010000 je fizzbuzz!fizzbuzzInit+0x218 (00ae2728)
fizzbuzz!fizzbuzzInit+0x5d:
00ae256d c745e010060000 mov dword ptr [ebp-20h],610h
00ae2574 c745e474e9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b34 (00b1e974)
00ae257b 837dfc64 cmp dword ptr [ebp-4],64h
00ae257f 7e05 jle fizzbuzz!fizzbuzzInit+0x76 (00ae2586)
fizzbuzz!fizzbuzzInit+0x71:
00ae2581 e9a2010000 jmp fizzbuzz!fizzbuzzInit+0x218 (00ae2728)
fizzbuzz!fizzbuzzInit+0x76:
00ae2586 c745e00f060000 mov dword ptr [ebp-20h],60Fh
00ae258d c745e480e9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b40 (00b1e980)
00ae2594 8b45fc mov eax,dword ptr [ebp-4]
00ae2597 a3d012b200 mov dword ptr [fizzbuzz!i_88025 (00b212d0)],eax
00ae259c c745e006000000 mov dword ptr [ebp-20h],6
00ae25a3 c745e48ce9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b4c (00b1e98c)
00ae25aa c745e006000000 mov dword ptr [ebp-20h],6
00ae25b1 c745e49ce9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b5c (00b1e99c)
00ae25b8 c745e006000000 mov dword ptr [ebp-20h],6
00ae25bf c745e4ace9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b6c (00b1e9ac)
00ae25c6 ba0f000000 mov edx,0Fh
00ae25cb 8b0dd012b200 mov ecx,dword ptr [fizzbuzz!i_88025 (00b212d0)]
00ae25d1 e8bbeffdff call fizzbuzz!ILT+1420(modInt (00ac1591)
00ae25d6 8945f4 mov dword ptr [ebp-0Ch],eax
00ae25d9 837df400 cmp dword ptr [ebp-0Ch],0
00ae25dd 7402 je fizzbuzz!fizzbuzzInit+0xd1 (00ae25e1)
fizzbuzz!fizzbuzzInit+0xcf:
00ae25df eb2a jmp fizzbuzz!fizzbuzzInit+0xfb (00ae260b)
fizzbuzz!fizzbuzzInit+0xd1:
00ae25e1 c745e007000000 mov dword ptr [ebp-20h],7
00ae25e8 c745e4bce9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b7c (00b1e9bc)
00ae25ef 684cb7b000 push offset fizzbuzz!_xmm+0x2c (00b0b74c)
00ae25f4 683cb7b000 push offset fizzbuzz!_xmm+0x1c (00b0b73c)
00ae25f9 68cce9b100 push offset fizzbuzz!nimNaN+0x7b8c (00b1e9cc)
00ae25fe e854570000 call fizzbuzz!printf (00ae7d57)
00ae2603 83c40c add esp,0Ch
00ae2606 e9fa000000 jmp fizzbuzz!fizzbuzzInit+0x1f5 (00ae2705)
fizzbuzz!fizzbuzzInit+0xfb:
00ae260b c745e008000000 mov dword ptr [ebp-20h],8
00ae2612 c745e4d4e9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7b94 (00b1e9d4)
00ae2619 c745e008000000 mov dword ptr [ebp-20h],8
00ae2620 c745e4e4e9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7ba4 (00b1e9e4)
00ae2627 ba05000000 mov edx,5
00ae262c 8b0dd012b200 mov ecx,dword ptr [fizzbuzz!i_88025 (00b212d0)]
00ae2632 e85aeffdff call fizzbuzz!ILT+1420(modInt (00ac1591)
00ae2637 8945f0 mov dword ptr [ebp-10h],eax
00ae263a 837df000 cmp dword ptr [ebp-10h],0
00ae263e 7402 je fizzbuzz!fizzbuzzInit+0x132 (00ae2642)
fizzbuzz!fizzbuzzInit+0x130:
00ae2640 eb25 jmp fizzbuzz!fizzbuzzInit+0x157 (00ae2667)
fizzbuzz!fizzbuzzInit+0x132:
00ae2642 c745e009000000 mov dword ptr [ebp-20h],9
00ae2649 c745e4f4e9b100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7bb4 (00b1e9f4)
00ae2650 684cb7b000 push offset fizzbuzz!_xmm+0x2c (00b0b74c)
00ae2655 6804eab100 push offset fizzbuzz!nimNaN+0x7bc4 (00b1ea04)
00ae265a e8f8560000 call fizzbuzz!printf (00ae7d57)
00ae265f 83c408 add esp,8
00ae2662 e99e000000 jmp fizzbuzz!fizzbuzzInit+0x1f5 (00ae2705)
fizzbuzz!fizzbuzzInit+0x157:
00ae2667 c745e00a000000 mov dword ptr [ebp-20h],0Ah
00ae266e c745e40ceab100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7bcc (00b1ea0c)
00ae2675 c745e00a000000 mov dword ptr [ebp-20h],0Ah
00ae267c c745e41ceab100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7bdc (00b1ea1c)
00ae2683 ba03000000 mov edx,3
00ae2688 8b0dd012b200 mov ecx,dword ptr [fizzbuzz!i_88025 (00b212d0)]
00ae268e e8feeefdff call fizzbuzz!ILT+1420(modInt (00ac1591)
00ae2693 8945ec mov dword ptr [ebp-14h],eax
00ae2696 837dec00 cmp dword ptr [ebp-14h],0
00ae269a 7402 je fizzbuzz!fizzbuzzInit+0x18e (00ae269e)
fizzbuzz!fizzbuzzInit+0x18c:
00ae269c eb22 jmp fizzbuzz!fizzbuzzInit+0x1b0 (00ae26c0)
fizzbuzz!fizzbuzzInit+0x18e:
00ae269e c745e00b000000 mov dword ptr [ebp-20h],0Bh
00ae26a5 c745e42ceab100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7bec (00b1ea2c)
00ae26ac 683cb7b000 push offset fizzbuzz!_xmm+0x1c (00b0b73c)
00ae26b1 683ceab100 push offset fizzbuzz!nimNaN+0x7bfc (00b1ea3c)
00ae26b6 e89c560000 call fizzbuzz!printf (00ae7d57)
00ae26bb 83c408 add esp,8
00ae26be eb45 jmp fizzbuzz!fizzbuzzInit+0x1f5 (00ae2705)
fizzbuzz!fizzbuzzInit+0x1b0:
00ae26c0 c745e00d000000 mov dword ptr [ebp-20h],0Dh
00ae26c7 c745e444eab100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7c04 (00b1ea44)
00ae26ce c745e00d000000 mov dword ptr [ebp-20h],0Dh
00ae26d5 c745e454eab100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7c14 (00b1ea54)
00ae26dc c745f800000000 mov dword ptr [ebp-8],0
00ae26e3 8b0dd012b200 mov ecx,dword ptr [fizzbuzz!i_88025 (00b212d0)]
00ae26e9 e867e9fdff call fizzbuzz!ILT+80(nimIntToStr (00ac1055)
00ae26ee 8945f8 mov dword ptr [ebp-8],eax
00ae26f1 8b4df8 mov ecx,dword ptr [ebp-8]
00ae26f4 83c108 add ecx,8
00ae26f7 51 push ecx
00ae26f8 6864eab100 push offset fizzbuzz!nimNaN+0x7c24 (00b1ea64)
00ae26fd e855560000 call fizzbuzz!printf (00ae7d57)
00ae2702 83c408 add esp,8
fizzbuzz!fizzbuzzInit+0x1f5:
00ae2705 c745e012060000 mov dword ptr [ebp-20h],612h
00ae270c c745e46ceab100 mov dword ptr [ebp-1Ch],offset fizzbuzz!nimNaN+0x7c2c (00b1ea6c)
00ae2713 ba01000000 mov edx,1
00ae2718 8b4dfc mov ecx,dword ptr [ebp-4]
00ae271b e800ecfdff call fizzbuzz!ILT+795(addInt (00ac1320)
00ae2720 8945fc mov dword ptr [ebp-4],eax
00ae2723 e938feffff jmp fizzbuzz!fizzbuzzInit+0x50 (00ae2560)
fizzbuzz!fizzbuzzInit+0x218:
00ae2728 e8c3fdffff call fizzbuzz!systemDatInit+0x7380 (00ae24f0)
00ae272d 8be5 mov esp,ebp
00ae272f 5d pop ebp
00ae2730 c3 ret
0:000> uf modInt
fizzbuzz!modInt [c:\users\charlie\source\nimrod\lib\system\arithm.nim @ 157]:
157 00ad03a0 55 push ebp
157 00ad03a1 8bec mov ebp,esp
157 00ad03a3 83ec0c sub esp,0Ch
157 00ad03a6 8955f4 mov dword ptr [ebp-0Ch],edx
157 00ad03a9 894df8 mov dword ptr [ebp-8],ecx
159 00ad03ac c745fc00000000 mov dword ptr [ebp-4],0
159 00ad03b3 8b45f8 mov eax,dword ptr [ebp-8]
160 00ad03b6 8b4df4 mov ecx,dword ptr [ebp-0Ch]
161 00ad03b9 33d2 xor edx,edx
162 00ad03bb f7f9 idiv eax,ecx
163 00ad03bd 7105 jno fizzbuzz!modInt+0x24 (00ad03c4)
fizzbuzz!modInt+0x1f [c:\users\charlie\source\nimrod\lib\system\arithm.nim @ 164]:
164 00ad03bf e80f11ffff call fizzbuzz!ILT+1230(_raiseOverflow) (00ac14d3)
fizzbuzz!modInt+0x24 [c:\users\charlie\source\nimrod\lib\system\arithm.nim @ 166]:
166 00ad03c4 8bc2 mov eax,edx
167 00ad03c6 8945fc mov dword ptr [ebp-4],eax
170 00ad03c9 8b45fc mov eax,dword ptr [ebp-4]
170 00ad03cc 8be5 mov esp,ebp
170 00ad03ce 5d pop ebp
170 00ad03cf c3 ret
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment