Advertisement
Strzyk

112

May 15th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 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 a: $',13,10
  18. napis2 db 'Wprowadz liczbe b: $',13,10
  19. napis3 db 'Wprowadz liczbe c: $',13,10
  20. reprez db 'Zbyt mala reprezentacja$'
  21. suma db 'Wynik= $',13,10
  22. nl db 13,10, '$';
  23. gw db '*$';
  24. liczba DW ?
  25. liczba2 DW ?
  26. liczba3 DW ?
  27. stala DW 4
  28. wynik DW ?
  29. wynik2 DW ?
  30. dane ends
  31.  
  32. kod segment
  33. start:
  34. mov ax, seg dane
  35. mov ds, ax
  36. mov ax, 3 ;czysci ekran
  37. int 10h ;czysci ekran
  38. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  39. mov dx, offset napis
  40. mov ah, 9h
  41. int 21h
  42. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  43.  
  44. ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  45. ; wczytywanie wartosci liczbowej z klawiatury
  46. ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  47.  
  48.  
  49.  
  50. xor bx,bx
  51.  
  52. wczytaj:
  53.  
  54. ;cmp bx, 65535
  55. ;ja koniec_wczytania
  56.  
  57. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  58. int 21h
  59.  
  60. xor dx, dx
  61.  
  62. mov dl, al
  63. cmp dl, 13 ;enter
  64. je koniec_wczytania
  65.  
  66. cmp dl, '0'
  67. jl wczytaj ;nie liczba
  68.  
  69. cmp dl, '9'
  70. jg wczytaj ;nie liczba
  71.  
  72. mov ah, 2h
  73. int 21h
  74.  
  75. sub dl, '0'
  76. push dx
  77. mov ax, bx
  78. mov cx, 10
  79. mul cx
  80. pop dx
  81.  
  82. add ax, dx
  83. mov bx, ax
  84. mov liczba, bx
  85. jmp wczytaj
  86.  
  87. koniec_wczytania:
  88.  
  89. mov dx, offset nl
  90. mov ah, 9h
  91. int 21h
  92.  
  93. mov dx, offset napis2
  94. mov ah, 9h
  95. int 21h
  96.  
  97. xor bx,bx
  98. wczytaj2:
  99.  
  100. ;cmp bx, 65535
  101. ;ja koniec_wczytania
  102.  
  103. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  104. int 21h
  105.  
  106. xor dx, dx
  107.  
  108. mov dl, al
  109. cmp dl, 13 ;enter
  110. je koniec_wczytania2
  111.  
  112. cmp dl, '0'
  113. jl wczytaj2 ;nie liczba
  114.  
  115. cmp dl, '9'
  116. jg wczytaj2 ;nie liczba
  117.  
  118. mov ah, 2h
  119. int 21h
  120.  
  121. sub dl, '0'
  122. push dx
  123. mov ax, liczba2
  124. mov cx, 10
  125. mul cx
  126. pop dx
  127.  
  128. add ax, dx
  129. mov liczba2, ax
  130. jmp wczytaj2
  131.  
  132. koniec_wczytania2:
  133. mov dx, offset nl
  134. mov ah, 9h
  135. int 21h
  136.  
  137. mov dx, offset napis3
  138. mov ah, 9h
  139. int 21h
  140.  
  141. xor bx,bx
  142. wczytaj3:
  143.  
  144. ;cmp bx, 65535
  145. ;ja koniec_wczytania
  146.  
  147. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  148. int 21h
  149.  
  150. xor dx, dx
  151.  
  152. mov dl, al
  153. cmp dl, 13 ;enter
  154. je koniec_wczytania3
  155.  
  156. cmp dl, '0'
  157. jl wczytaj3 ;nie liczba
  158.  
  159. cmp dl, '9'
  160. jg wczytaj3 ;nie liczba
  161.  
  162. mov ah, 2h
  163. int 21h
  164.  
  165. sub dl, '0'
  166. push dx
  167. mov ax, liczba3
  168. mov cx, 10
  169. mul cx
  170. pop dx
  171.  
  172. add ax, dx
  173. mov liczba3, ax
  174. jmp wczytaj3
  175.  
  176. koniec_wczytania3:
  177.  
  178.  
  179. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  180. mov dx, offset nl
  181. mov ah, 9h
  182. int 21h
  183.  
  184. mov dx, offset suma
  185. mov ah, 9h
  186. int 21h
  187. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  188. ;wyswietlanie zawartosci liczbowej z rejestru ax
  189.  
  190. xor dx, dx
  191. mov ax, liczba2
  192. mov bx, liczba2
  193. mul bx
  194. mov wynik, ax
  195. cmp dx, 0
  196. jnz koniec
  197.  
  198.  
  199. mov ax, liczba
  200. mov bx, liczba3
  201. mul bx
  202. mov wynik2, ax
  203. cmp dx, 0
  204. jnz koniec
  205.  
  206. mov ax, wynik2
  207. mov bx, 4
  208. mul bx
  209. mov wynik2, ax
  210. cmp dx, 0
  211. jnz koniec
  212.  
  213. cmp ax,0
  214. jg odejmowanie
  215.  
  216. mov bx, wynik
  217. add bx, wynik2
  218. mov ax,bx
  219.  
  220. jmp cos222
  221.  
  222. odejmowanie:
  223. mov bx,wynik
  224. sub bx,wynik
  225. mov ax,bx
  226.  
  227.  
  228.  
  229. cos222:
  230. wyswietl2:
  231.  
  232. mov cx, 0
  233. petla111:
  234. mov dx,0
  235. mov bx, 10
  236. div bx
  237. push dx
  238. inc cx
  239. cmp ax, 0
  240. jnz petla111
  241. petla211:
  242. pop dx
  243. mov ah, 02h
  244. add dl, 48
  245. int 21h
  246. loop petla211
  247. jmp cos
  248. koniec:
  249. mov dx, offset reprez
  250. mov ah, 9h
  251. int 21h
  252.  
  253. cos:
  254. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  255. ;;; Wyjście do systemu DOS
  256. mov ah, 4ch
  257. int 21h
  258. kod ends
  259. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement