dariahinz

zad 1

Nov 17th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. comment |
  2. .686
  3. .model flat
  4.  
  5. extern _ExitProcess@4 : PROC
  6. extern _MessageBoxA@16 : PROC
  7. extern _MessageBoxW@16 : PROC
  8. extern __write : PROC ; (int handle, char * text, int length)
  9. extern __read : PROC ; (int handle, char * text, int lengthLimit)
  10.  
  11. public _main
  12.  
  13. .data
  14. znaki byte 12 dup (?)
  15.  
  16. .code
  17. wyswietl_EAX PROC
  18. pusha
  19.  
  20. mov esi, 10 ; indeks w tablicy 'znaki'
  21. mov ebx, 10 ; dzielnik równy 10
  22. konwersja:
  23. mov edx, 0 ; zerowanie starszej części dzielnej
  24. div ebx ; dzielenie przez 10, reszta w EDX,
  25. ; iloraz w EAX
  26. add dl, 30H ; zamiana reszty z dzielenia na kod
  27. ; ASCII
  28. mov znaki [esi], dl; zapisanie cyfry w kodzie ASCII
  29. dec esi ; zmniejszenie indeksu
  30. cmp eax, 0 ; sprawdzenie czy iloraz = 0
  31. jne konwersja ; skok, gdy iloraz niezerowy
  32. ; wypełnienie pozostałych bajtów spacjami i wpisanie
  33. ; znaków nowego wiersza
  34. wypeln:
  35. or esi, esi
  36. jz wyswietl ; skok, gdy ESI = 0
  37. mov byte PTR znaki [esi], 20H ; kod spacji
  38. dec esi ; zmniejszenie indeksu
  39. jmp wypeln
  40.  
  41. wyswietl:
  42. mov byte PTR znaki [0], 0AH ; kod nowego wiersza
  43. mov byte PTR znaki [11], 0AH ; kod nowego wiersza
  44. ; wyświetlenie cyfr na ekranie
  45. push dword PTR 12 ; liczba wyświetlanych znaków
  46. push dword PTR OFFSET znaki ; adres wyśw. obszaru
  47. push dword PTR 1; numer urządzenia (ekran ma numer 1)
  48. call __write ; wyświetlenie liczby na ekranie
  49. add esp, 12 ; usunięcie parametrów ze stosu
  50.  
  51. popa
  52. ret
  53. wyswietl_EAX ENDP
  54.  
  55. _main:
  56.  
  57. mov ebx, 1 ; liczby naturalne dodawanie
  58. mov eax, 1 ; ciag liczb
  59. mov ecx, 1 ; licznik
  60.  
  61. licz:
  62. call wyswietl_EAX
  63. add eax, ebx
  64. inc ebx
  65. inc ecx
  66. cmp ecx, 50
  67. jne licz
  68.  
  69.  
  70. push 0
  71. call _ExitProcess@4
  72. |
  73. end
Add Comment
Please, Sign In to add comment