Advertisement
Guest User

NOVINAJNOVIVJI1

a guest
Apr 23rd, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. data segment
  2. ; Ovde definisati sve promenljive
  3. string1 db "ABCD$"
  4. znak db ' '
  5.  
  6. ends
  7.  
  8.  
  9.  
  10. stek segment stack
  11. dw 128 dup(0)
  12. ends
  13.  
  14. ; Unos jednog znaka
  15. read macro c
  16. push ax
  17. mov ah, 01
  18. int 21h
  19. mov c, al
  20. pop ax
  21. endm
  22. ; Ispis jednog znaka
  23. write macro c
  24. push ax
  25. push dx
  26. mov ah, 02
  27. mov dl, c
  28. int 21h
  29. pop dx
  30. pop ax
  31. endm
  32. ; Unos jednog znaka bez prikaza na ekran
  33. readkey macro c
  34. push ax
  35. mov ah, 08
  36. int 21h
  37. mov c, al
  38. pop ax
  39. endm
  40. ; Unos jednog znaka bez prikaza na ekran i pamcenja
  41. keypress macro
  42. push ax
  43. mov ah, 08
  44. int 21h
  45. pop ax
  46. endm
  47. ; Ispis stringa na ekran
  48. writeString macro s
  49. push ax
  50. push dx
  51. mov dx, offset s
  52. mov ah, 09
  53. int 21h
  54. pop dx
  55. pop ax
  56. endm
  57. ; Kraj programa
  58. krajPrograma macro
  59. mov ax, 4c02h
  60. int 21h
  61. endm
  62.  
  63. code segment
  64. ; Novi red
  65. novired proc
  66. push ax
  67. push bx
  68. push cx
  69. push dx
  70. mov ah,03
  71. mov bh,0
  72. int 10h
  73. inc dh
  74. mov dl,0
  75. mov ah,02
  76. int 10h
  77. pop dx
  78. pop cx
  79. pop bx
  80. pop ax
  81. ret
  82. novired endp
  83. ; Ucitavanje stringa
  84. ; Adresa stringa je parametar procedure
  85. readString proc
  86. push ax
  87. push bx
  88. push cx
  89. push dx
  90. push si
  91. mov bp, sp
  92. mov dx, [bp+12]
  93. mov bx, dx
  94. mov ax, [bp+14]
  95. mov byte [bx] ,al
  96. mov ah, 0Ah
  97. int 21h
  98. mov si, dx
  99. mov cl, [si+1]
  100. mov ch, 0
  101. kopiraj:
  102. mov al, [si+2]
  103. mov [si], al
  104. inc si
  105. loop kopiraj
  106. mov [si], '$'
  107. pop si
  108. pop dx
  109. pop cx
  110. pop bx
  111. pop ax
  112. ret 4
  113. readString endp
  114. ; Konvertovanje stringa u broj
  115. strtoint proc
  116. push ax
  117. push bx
  118. push cx
  119. push dx
  120. push si
  121. mov bp, sp
  122. mov bx, [bp+14]
  123. mov ax, 0
  124. mov cx, 0
  125. mov si, 10
  126. petlja1:
  127. mov cl, [bx]
  128. cmp cl, '$'
  129. je kraj1
  130. mul si
  131. sub cx, 48
  132. add ax, cx
  133. inc bx
  134. jmp petlja1
  135. kraj1:
  136. mov bx, [bp+12]
  137. mov [bx], ax
  138. pop si
  139. pop dx
  140. pop cx
  141. pop bx
  142. pop ax
  143. ret 4
  144. strtoint endp
  145. ; Konvertovanje broja u string
  146. inttostr proc
  147. push ax
  148. push bx
  149. push cx
  150. push dx
  151. push si
  152. mov bp, sp
  153. mov ax, [bp+14]
  154. mov dl, '$'
  155. push dx
  156. mov si, 10
  157. petlja2:
  158. mov dx, 0
  159. div si
  160. add dx, 48
  161. push dx
  162. cmp ax, 0
  163. jne petlja2
  164.  
  165. mov bx, [bp+12]
  166. petlja2a:
  167. pop dx
  168. mov [bx], dl
  169. inc bx
  170. cmp dl, '$'
  171. jne petlja2a
  172. pop si
  173. pop dx
  174. pop cx
  175. pop bx
  176. pop ax
  177. ret 4
  178. inttostr endp
  179.  
  180. start:
  181. ; Postaviti kodni i stek segment i podesiti data segment
  182. ASSUME CS:CODE, SS:STEK
  183. MOV AX, DATA
  184. MOV DS, AX
  185.  
  186. ; Ovde pisati glavni deo koda.
  187. read znak
  188. MOV SI, 0
  189. Petlja:
  190.  
  191. cmp String1[SI],"$"
  192. je Kraj
  193. mov al, String1[si]
  194. cmp al,znak
  195. je poklapanje
  196. inc si
  197. jmp Petlja
  198.  
  199. poklapanje:
  200. MOV STRING1[SI], ' '
  201. INC SI
  202. jmp Petlja
  203.  
  204. kraj:
  205. ; Ovde ispisati rezultat
  206. writeString string1
  207. krajPrograma
  208.  
  209.  
  210.  
  211. ends
  212.  
  213. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement