Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. .model small
  2. .stack 100h
  3. .data
  4.  
  5. help db 'Parasykite programa, kuri atlieka operacija AND dviems beveik bet kokio ilgio dvejetainiams skaiciams, esantiems failuose, ir isveda rezultata i trečia faila. Rytis Leviska, I pogrupis'
  6.  
  7. ; duom.txt
  8. pirmasParametras db 255 dup ('$')
  9. ; duom2.txt
  10. antrasParametras db 255 dup ('$')
  11. ; rez.txt
  12. rezultatuFailas db 'rez.txt'
  13. ; -h arba /?
  14. treciasParametras db ?
  15.  
  16. Skaicius1 db 11 dup ('$')
  17. Skaicius2 db 11 dup ('$')
  18. RezSkaicius db 10 dup ('$')
  19.  
  20. pirmasZodis dw ?
  21. antrasZodis dw ?
  22. treciasZodis dw ?
  23. ketvirtasZodis dw ?
  24. penktasZodis dw ?
  25. nuskaitytaZodziu db 00h
  26. rodyklesPozicija db 00h
  27. fileHandler dw ?
  28. fileHandler2 dw ?
  29.  
  30. enteris db 13, 10, '$'
  31. jauBuvoVienasParametras db 0
  32.  
  33. .code
  34. mov ax, @data
  35. mov ds, ax
  36.  
  37. mov cl, [es:0080h]
  38. mov bx, 0082h
  39.  
  40. mov si, 0h
  41.  
  42. cmp cl, 03h ; -h arba /?
  43. je PagalbosIsvediklis
  44.  
  45. cmp cl, 12h ; maziau nei 'duom.txt duom2.txt'
  46. jl PagalbosIsvediklis
  47.  
  48. ParametruSkaitymas:
  49. mov dl, [es:bx]
  50. cmp jauBuvoVienasParametras, 01h
  51. je AntroParametroCiklas
  52.  
  53. cmp dl, ' '
  54. je Perejimas
  55.  
  56. PirmoParametroCiklas:
  57. mov pirmasParametras[si], dl
  58. jmp CikloPersukimas
  59.  
  60. AntroParametroCiklas:
  61. mov antrasParametras[si], dl
  62. jmp CikloPersukimas
  63.  
  64. Perejimas:
  65. inc jauBuvoVienasParametras
  66. inc bx
  67. mov pirmasParametras[si], 0
  68. mov si, 0h
  69. dec cl
  70. jmp ParametruSkaitymas
  71.  
  72. CikloPersukimas:
  73. dec cl
  74. cmp cl, 00h
  75. je ParametruSkaitymoPab
  76. inc bx
  77. inc si
  78. jmp ParametruSkaitymas
  79.  
  80. PagalbosIsvediklis:
  81. mov ah, 09h
  82. mov dx, offset help
  83. int 21h
  84. jmp ProgramosPabaiga
  85.  
  86. ParametruSkaitymoPab:
  87. mov antrasParametras[si], 0 ; padedam nuli antro parametro eilutes gale kad atidarant faila ax nemestu erroro
  88.  
  89. mov ah, 09h
  90. mov dx, offset pirmasParametras
  91. int 21h
  92.  
  93. mov ah, 09h
  94. mov dx, offset enteris
  95. int 21h
  96.  
  97. mov ah, 09h
  98. mov dx, offset antrasParametras
  99. int 21h
  100.  
  101. mov ah, 09h
  102. mov dx, offset enteris
  103. int 21h
  104.  
  105. mov nuskaitytaZodziu, 00h ; kiek zodziu is abieju jau buvo nuskaityta
  106.  
  107. mov ax, 3D00h ; failo atidarymas tik skaitymui
  108. mov dx, offset pirmasParametras
  109. int 21h
  110.  
  111. mov fileHandler, ax
  112.  
  113. mov ax, 3D00h ; failo atidarymas tik skaitymui
  114. mov dx, offset antrasParametras
  115. int 21h
  116.  
  117. mov fileHandler2, ax
  118.  
  119. FailuSkaitymas:
  120. mov cx, 0bh
  121. nunulinti:
  122. mov si, cx
  123. mov Skaicius1[si], '$'
  124. mov Skaicius2[si], '$'
  125. loop nunulinti
  126.  
  127. PirmasFailas:
  128.  
  129. mov bx, fileHandler
  130.  
  131. mov ah, 42h
  132. mov al, 00h
  133. xor dx, dx
  134. mov cx, 0h
  135. mov dl, rodyklesPozicija
  136. int 21h
  137.  
  138. mov bx, fileHandler
  139. mov cx, 0ah ; kiek baitu nuskaitysime
  140. mov ah, 3fh ; skaitome is failo
  141. mov dx, offset Skaicius1
  142. int 21h
  143.  
  144. mov ah, 09h
  145. mov dx, offset enteris
  146. int 21h
  147.  
  148. mov ah, 09h
  149. mov dx, offset Skaicius1
  150. int 21h
  151.  
  152. AntrasFailas:
  153.  
  154. mov bx, fileHandler2
  155.  
  156. mov ah, 42h
  157. mov al, 00h
  158. xor dx, dx
  159. mov cx, 0h
  160. mov dl, rodyklesPozicija
  161. int 21h
  162.  
  163. mov bx, fileHandler2
  164. mov cx, 0ah ; kiek baitu nuskaitysime
  165. mov ah, 3fh ; skaitome is failo
  166. mov dx, offset Skaicius2
  167. int 21h
  168.  
  169. mov ah, 09h
  170. mov dx, offset enteris
  171. int 21h
  172.  
  173. mov ah, 09h
  174. mov dx, offset Skaicius2
  175. int 21h
  176.  
  177. add nuskaitytaZodziu, 05h
  178. add rodyklesPozicija, 0ah
  179.  
  180. FailuSkaitymoSkaitliukas:
  181. cmp nuskaitytaZodziu, 80d
  182. je pabaiga
  183. jmp IssaugomeSkaiciu
  184. ;xor ax, ax
  185. ;mov al, nuskaitytaZodziu
  186. ;mov dl, 05h
  187. ;div dl
  188. ;cmp ah, 05h
  189. ;je IssaugomeSkaiciu
  190. jmp FailuSkaitymas
  191.  
  192. mov cx, 0bh
  193. xor bx, bx
  194. xor dx, dx
  195.  
  196. IssaugomeSkaiciu:
  197. mov si, cx
  198. mov dl, Skaicius1[si-1]
  199. mov bl, Skaicius2[si-1]
  200. sub dl, 30h
  201. sub bl, 30h
  202.  
  203. and dx, bx
  204. push dx
  205. loop IssaugomeSkaiciu
  206. jmp FailuSkaitymas
  207.  
  208. pabaiga:
  209. jmp RezultatuFailas
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218. RezultatuFailas:
  219. ;mov ax, 3D00h ; failo atidarymas tik skaitymui
  220. ;mov dx, offset pirmasParametras
  221. ;int 21h
  222.  
  223. ;mov fileHandler, ax
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231. ProgramosPabaiga:
  232. mov ah, 04ch
  233. int 21h
  234. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement