Advertisement
Strzyk

Suma z zakresu

May 8th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 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. nl db 13,10, '$';
  20. gw db '*$';
  21. zmp dw ?
  22. zmp2 dw ?
  23. dane ends
  24.  
  25. kod segment
  26. start:
  27. mov ax, seg dane
  28. mov ds, ax
  29. mov ax, 3 ;czysci ekran
  30. int 10h ;czysci ekran
  31. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  32. mov dx, offset napis
  33. mov ah, 9h
  34. int 21h
  35. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  36.  
  37. ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  38. ; wczytywanie wartosci liczbowej z klawiatury
  39. ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  40. xor bx,bx
  41.  
  42. wczytaj:
  43.  
  44. ;cmp bx, 65535
  45. ;ja koniec_wczytania
  46.  
  47. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  48. int 21h
  49.  
  50. xor dx, dx
  51.  
  52. mov dl, al
  53. cmp dl, 13 ;enter
  54. je koniec_wczytania
  55.  
  56. cmp dl, '0'
  57. jl wczytaj ;nie liczba
  58.  
  59. cmp dl, '9'
  60. jg wczytaj ;nie liczba
  61.  
  62. mov ah, 2h
  63. int 21h
  64.  
  65. sub dl, '0'
  66. push dx
  67. mov ax, bx
  68. mov cx, 10
  69. mul cx
  70. pop dx
  71.  
  72. add ax, dx
  73. mov bx, ax
  74. jmp wczytaj
  75.  
  76. koniec_wczytania:
  77.  
  78. mov zmp, bx
  79.  
  80.  
  81.  
  82. mov dx, offset nl
  83. mov ah, 9h
  84. int 21h
  85.  
  86. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  87. mov dx, offset napis2
  88. mov ah, 9h
  89. int 21h
  90. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  91. xor bx, bx ;;;;;;;tu brak wyzerowania bx
  92. wczytaj2:
  93.  
  94. ;cmp bx, 65535
  95. ;ja koniec_wczytania
  96.  
  97. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  98. int 21h
  99.  
  100. xor dx, dx
  101.  
  102. mov dl, al
  103. cmp dl, 13 ;enter
  104. je koniec_wczytania2
  105.  
  106. cmp dl, '0'
  107. jl wczytaj2 ;nie liczba
  108.  
  109. cmp dl, '9'
  110. jg wczytaj2 ;nie liczba
  111.  
  112. mov ah, 2h
  113. int 21h
  114.  
  115. sub dl, '0'
  116. push dx
  117. mov ax, bx
  118. mov cx, 10
  119. mul cx
  120. pop dx
  121.  
  122. add ax, dx
  123. mov bx, ax
  124. jmp wczytaj2
  125.  
  126. koniec_wczytania2:
  127. mov zmp2, bx
  128. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  129. mov dx, offset nl
  130. mov ah, 9h
  131. int 21h
  132. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ktora wieksza
  133. mov bx, zmp2
  134. cmp bx, zmp
  135. jg tu
  136.  
  137. push zmp2
  138. push zmp
  139. pop zmp2
  140. pop zmp
  141.  
  142.  
  143. tu:
  144. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sumowanie
  145. mov bx, zmp2
  146. sub bx, zmp
  147. mov cx, bx
  148. cmp cx, 0
  149. mov bx, zmp
  150. jnz tam
  151. jmp tam1
  152.  
  153. tam:
  154. petlacx:
  155. inc zmp
  156. add bx, zmp
  157. loop petlacx
  158.  
  159. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  160. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  161. ;add bx, zmp
  162. ;wyswietlanie zawartosci liczbowej z rejestru ax
  163. tam1:
  164. mov ax, bx
  165. wyswietl:
  166.  
  167. mov cx, 0
  168. petla11:
  169. mov dx,0
  170. mov bx, 10
  171. div bx
  172. push dx
  173. inc cx
  174. cmp ax, 0
  175. jnz petla11
  176. mov dx, 0
  177. petla21:
  178. pop dx
  179. mov ah, 02h
  180. add dl, 48
  181. int 21h
  182. loop petla21
  183.  
  184. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  185. ;;; Wyjście do systemu DOS
  186. mov ah, 4ch
  187. int 21h
  188. kod ends
  189. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement