Advertisement
Guest User

Untitled

a guest
Jan 4th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. _czas proc
  2. push ebp
  3. mov ebp, esp
  4. pusha
  5.  
  6. ; alokacja pamieci do getsystemtime i pozniej do tekstu (zeby nie alokowac dwa razy)
  7. mov eax, 1024
  8. push eax
  9. call _malloc
  10. add esp, 4
  11.  
  12. mov esi, eax ; zachowanie adresu zaalokowanej pamieci
  13. push eax
  14. call _GetSystemTime@4
  15.  
  16. ; wyciaganie danych ze struktury (na odwrot bo bedzie wrzucane na stos)
  17. mov ax, [esi+6] ; dzien
  18. push ax
  19. mov ax, [esi+2] ; miesiac
  20. push ax
  21. mov ax, [esi] ; rok
  22. push ax
  23.  
  24. mov ebx, 10 ; dzielnik
  25.  
  26. ; rysunek pomocniczy
  27. ; _  _  _  _  _  _  _  _  _  _  0
  28. ; 2  0  1  8  .  0  1  .  0  4  0
  29. ; 0  2  4  6  8  10 12 14 16 18 20
  30. ; dzielenie daty bedzie szlo od konca wiec w przypadku roku trzeba zaczac od 6 i isc do 0
  31.  
  32. ; rok
  33. pop ax ; popniecie roku ze stosu
  34. movzx eax, ax ; usuniecie syfu z eax zostawiajac tylko ax
  35. mov edx, 0 ; zerowanie edx zeby nie zrobil sie syf przy dzieleniu
  36. div ebx ; dzielenie edx:eax przez ebx
  37. add edx, '0' ; zamiana na tekst
  38. mov word ptr [esi+6], dx ; wrzucenie do pamieci na dane miejsce
  39. ; dalej do konca jest wlasciwie caly czas to samo, wiec nie ma za mocno sensu zeby to opisywac
  40. mov edx, 0
  41. div ebx
  42. add edx, '0'
  43. mov word ptr [esi+4], dx
  44. mov edx, 0
  45. div ebx
  46. add edx, '0'
  47. mov word ptr [esi+2], dx
  48. mov edx, 0
  49. div ebx
  50. add edx, '0'
  51. mov word ptr [esi], dx
  52. mov word ptr [esi+8], '.'
  53.  
  54. ; miesiac
  55. pop ax
  56. movzx eax, ax
  57. mov edx, 0
  58. div ebx
  59. add edx, '0'
  60. mov word ptr [esi+12], dx
  61. mov edx, 0
  62. div ebx
  63. add edx, '0'
  64. mov word ptr [esi+10], dx
  65. mov word ptr [esi+14], '.'
  66.  
  67. ; dzien
  68. pop ax
  69. movzx eax, ax
  70. mov edx, 0
  71. div ebx
  72. add edx, '0'
  73. mov word ptr [esi+18], dx
  74. mov edx, 0
  75. div ebx
  76. add edx, '0'
  77. mov word ptr [esi+16], dx
  78. mov word ptr [esi+20], 0
  79.  
  80. ; wzywanie messageboxa
  81. push 0
  82. push esi
  83. push esi
  84. push 0
  85. call _MessageBoxW@16
  86.  
  87. ;epilog
  88. popa
  89. pop ebp
  90. ret
  91. _czas endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement