Advertisement
Strzyk

par

May 8th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.72 KB | None | 0 0
  1. ;;;;;;;;;; Kompilacja programu ;;;;
  2. ; tasm program.asm ;;;;;;
  3. ;;;;;;;;;; Linkowanie ;;;;;;;;;;;
  4. ;tlink program.obj ;;;;;;;;;;;;
  5. ;;;;;;;;;; Wykonanie programu ;;;;;
  6. ;program.exe
  7.  
  8.  
  9.  
  10. ;stosik SEGMENT STACK
  11. ; DB 328 DUP(?)
  12. ;stosik ENDS
  13.  
  14. assume cs:kod, ds:dane ;linia mo?e wyst?powa? w r?nych miejscach
  15.  
  16. dane segment
  17. napis db 'Wprowadz liczbe: $',13,10
  18. napis2 db 'Wprowadz druga liczbe: $',13,10
  19. zerodz db 'Nie mozna dzielic przez 0 !!!$'
  20. par db 'Liczba jest parzysta$'
  21. nl db 13,10, '$';
  22. gw db '*$';
  23. zmp dw ?
  24. zmp2 dw ?
  25. wyn dw ?
  26. reszta db ' R $'
  27. dane ends
  28.  
  29. kod segment
  30. start:
  31. mov ax, seg dane
  32. mov ds, ax
  33. mov ax, 3 ;czysci ekran
  34. int 10h ;czysci ekran
  35. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  36. mov dx, offset napis
  37. mov ah, 9h
  38. int 21h
  39. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  40.  
  41. ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  42. ; wczytywanie wartosci liczbowej z klawiatury
  43. ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  44. xor bx,bx
  45.  
  46. wczytaj:
  47.  
  48. ;cmp bx, 65535
  49. ;ja koniec_wczytania
  50.  
  51. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  52. int 21h
  53.  
  54. xor dx, dx
  55.  
  56. mov dl, al
  57. cmp dl, 13 ;enter
  58. je koniec_wczytania
  59.  
  60. cmp dl, '0'
  61. jl wczytaj ;nie liczba
  62.  
  63. cmp dl, '9'
  64. jg wczytaj ;nie liczba
  65.  
  66. mov ah, 2h
  67. int 21h
  68.  
  69. sub dl, '0'
  70. push dx
  71. mov ax, bx
  72. mov cx, 10
  73. mul cx
  74. pop dx
  75.  
  76. add ax, dx
  77. mov bx, ax
  78. jmp wczytaj
  79.  
  80. koniec_wczytania:
  81.  
  82. mov zmp, bx
  83.  
  84.  
  85.  
  86. mov dx, offset nl
  87. mov ah, 9h
  88. int 21h
  89.  
  90. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  91. mov dx, offset napis2
  92. mov ah, 9h
  93. int 21h
  94. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  95. xor bx, bx ;;;;;;;tu brak wyzerowania bx
  96. wczytaj2:
  97.  
  98. ;cmp bx, 65535
  99. ;ja koniec_wczytania
  100.  
  101. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  102. int 21h
  103.  
  104. xor dx, dx
  105.  
  106. mov dl, al
  107. cmp dl, 13 ;enter
  108. je koniec_wczytania2
  109.  
  110. cmp dl, '0'
  111. jl wczytaj2 ;nie liczba
  112.  
  113. cmp dl, '9'
  114. jg wczytaj2 ;nie liczba
  115.  
  116. mov ah, 2h
  117. int 21h
  118.  
  119. sub dl, '0'
  120. push dx
  121. mov ax, bx
  122. mov cx, 10
  123. mul cx
  124. pop dx
  125.  
  126. add ax, dx
  127. mov bx, ax
  128. jmp wczytaj2
  129.  
  130. koniec_wczytania2:
  131. mov zmp2, bx
  132. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  133. mov dx, offset nl
  134. mov ah, 9h
  135. int 21h
  136. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ktora wieksza
  137. ;mov bx, zmp2
  138. ;cmp bx, zmp
  139. ;jg tu
  140.  
  141. ;push zmp2
  142. ;push zmp
  143. ;pop zmp2
  144. ;pop zmp
  145.  
  146.  
  147. ;tu:
  148.  
  149. mov bx, zmp
  150. add bx, zmp2
  151. mov wyn,bx
  152.  
  153. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;dzielenie
  154. xor dx, dx
  155. mov ax, wyn
  156. mov bx, 2
  157.  
  158. cmp bx,0
  159. je zero
  160.  
  161. div bx
  162. mov zmp, ax
  163. mov zmp2, dx
  164.  
  165. cmp dx,0
  166. je parzysta
  167. jg niepar
  168.  
  169. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  170. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  171. ;add bx, zmp
  172. ;wyswietlanie zawartosci liczbowej z rejestru ax
  173. ;tam1:
  174. mov ax, wyn
  175. wyswietl:
  176.  
  177. mov cx, 0
  178. petla11:
  179. mov dx,0
  180. mov bx, 10
  181. div bx
  182. push dx
  183. inc cx
  184. cmp ax, 0
  185. jnz petla11
  186. mov dx, 0
  187. petla21:
  188. pop dx
  189. mov ah, 02h
  190. add dl, 48
  191. int 21h
  192. loop petla21
  193. ;;;
  194. mov dx, offset reszta
  195. mov ah, 9h
  196. int 21h
  197. ;;;
  198.  
  199. mov ax, zmp2
  200. ;wyswietlx:
  201.  
  202. mov cx, 0
  203. petla113:
  204. mov dx,0
  205. mov bx, 10
  206. div bx
  207. push dx
  208. inc cx
  209. cmp ax, 0
  210. jnz petla113
  211. mov dx, 0
  212. petla213:
  213. pop dx
  214. mov ah, 02h
  215. add dl, 48
  216. int 21h
  217. loop petla213
  218. parzysta:
  219. mov dx, offset par
  220. mov ah, 9h
  221. int 21h
  222. jmp koniec
  223. niepar:
  224. mov dx, offset niepar
  225. mov ah, 9h
  226. int 21h
  227. jmp koniec
  228.  
  229. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  230. ;;; Wyj?cie do systemu DOS
  231.  
  232.  
  233. mov ah, 4ch
  234. int 21h
  235.  
  236.  
  237. zero:
  238. mov dx, offset zerodz
  239. mov ah, 9h
  240. int 21h
  241.  
  242. koniec:
  243. mov ah, 4ch
  244. int 21h
  245. kod ends
  246. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement