Advertisement
Guest User

Untitled

a guest
Nov 18th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. org 100h
  2.  
  3. ; Pętla głównego programu.
  4. push 1
  5. mov cx, 1
  6. Program:
  7.  
  8. mov dx, prosze_wpisac
  9. mov ah, 9
  10. int 21h
  11.  
  12. ; Wpisanie ciągu znaków z klawiatury.
  13. mov ah, 0ah
  14. mov dx, znaki
  15. int 21h
  16.  
  17. ; Sprawdzenie czy ciąg znaków jest niepusty.
  18. mov al, [(znaki + 2 ) + 0]
  19. cmp al, 10
  20. je CzyKoniec
  21.  
  22. mov dx, 10
  23. mov ah, 2
  24. int 21h
  25.  
  26. ; Wypisywanie znaków.
  27. mov dx, wynik
  28. mov ah, 9
  29. int 21h
  30.  
  31. mov bx, 0
  32. jmp Sprawdz
  33. ; Koniec wypisywania znaków.
  34.  
  35. loop Program
  36. ; Koniec pętli głównego programu.
  37.  
  38.  
  39. ; Sprawdzenie, czy sprawdzono wszystkie znaki.
  40. Sprawdz:
  41. cmp bx, [(znaki + 1)]
  42. jb CzyWypisac
  43. jae CzyKoniec
  44.  
  45.  
  46. ; Sprawdzenie, czy znak ma być wypisany.
  47. CzyWypisac:
  48. mov al, [(znaki + 2) + bx]
  49. cmp al, 32
  50. ja DoWypisania
  51. jbe NieDoWypisania
  52.  
  53.  
  54. ; Wypisanie znaku.
  55. DoWypisania:
  56. call WypiszZnak
  57. inc bx
  58. jmp Sprawdz
  59.  
  60.  
  61. ; Niewypisanie znaku.
  62. NieDoWypisania:
  63. inc bx
  64. jmp Sprawdz
  65.  
  66.  
  67. ; Funkcja wypisująca znak.
  68. WypiszZnak:
  69. mov dx, [(znaki + 2) + bx]
  70. mov ah, 2
  71. int 21h
  72. ret
  73. ; Koniec funkcji wypisującej znak.
  74.  
  75.  
  76. ; Sprawdzenie, czy użytkownik chce zakończyć program.
  77. CzyKoniec:
  78. mov dx, 10
  79. mov ah, 2
  80. int 21h
  81.  
  82. mov dx, czy_zakonczyc
  83. mov ah, 9
  84. int 21h
  85.  
  86. mov dx, 10
  87. mov ah, 2
  88. int 21h
  89.  
  90. mov dx, jesli_nie
  91. mov ah, 9
  92. int 21h
  93.  
  94. mov ah, 7
  95. int 21h
  96.  
  97. cmp al, "%"
  98. je Koniec
  99.  
  100. mov dx, 10
  101. mov ah, 2
  102. int 21h
  103. inc cx
  104. push cx
  105. ; Koniec funkcji.
  106.  
  107. ;Kończy program.
  108. Koniec:
  109. mov dx, 10
  110. mov ah, 2
  111. int 21h
  112.  
  113. mov dx, sp
  114. mov ah, 9
  115. int 21h
  116.  
  117. mov ax, 4c00h
  118. int 21h
  119. ;
  120.  
  121. section .data
  122. zmienna db 0
  123. brak db "Nie wpisano znakow, prosze wpisac ponownie$"
  124. prosze_wpisac db "Prosze podac ciag znakow: $"
  125. wynik db "Zmieniony ciag znakow: $"
  126. czy_zakonczyc db "By zakonczyc program wcisnij znak '%'.$"
  127. jesli_nie db "W przypadku wprowadzenia innego znaku program bedzie kontynuowany.$"
  128. znaki db 51
  129. db 0
  130. times 52 db "$"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement