Advertisement
Strzyk

mnożenie

May 22nd, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 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. suma db 'Wynik= $',13,10
  21. nl db 13,10, '$';
  22. gw db '*$';
  23. liczba DW ?
  24. liczba2 DW ?
  25. liczba3 DW ?
  26.  
  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.  
  45.  
  46.  
  47. xor bx,bx
  48.  
  49. wczytaj:
  50.  
  51. ;cmp bx, 65535
  52. ;ja koniec_wczytania
  53.  
  54. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  55. int 21h
  56.  
  57. xor dx, dx
  58.  
  59. mov dl, al
  60. cmp dl, 13 ;enter
  61. je koniec_wczytania
  62.  
  63. cmp dl, '0'
  64. jl wczytaj ;nie liczba
  65.  
  66. cmp dl, '9'
  67. jg wczytaj ;nie liczba
  68.  
  69. mov ah, 2h
  70. int 21h
  71.  
  72. sub dl, '0'
  73. push dx
  74. mov ax, bx
  75. mov cx, 10
  76. mul cx
  77. pop dx
  78.  
  79. add ax, dx
  80. mov bx, ax
  81. mov liczba, bx
  82. jmp wczytaj
  83.  
  84. koniec_wczytania:
  85.  
  86. mov dx, offset nl
  87. mov ah, 9h
  88. int 21h
  89.  
  90. mov dx, offset napis2
  91. mov ah, 9h
  92. int 21h
  93.  
  94. xor bx,bx
  95. wczytaj2:
  96.  
  97. ;cmp bx, 65535
  98. ;ja koniec_wczytania
  99.  
  100. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  101. int 21h
  102.  
  103. xor dx, dx
  104.  
  105. mov dl, al
  106. cmp dl, 13 ;enter
  107. je koniec_wczytania2
  108.  
  109. cmp dl, '0'
  110. jl wczytaj2 ;nie liczba
  111.  
  112. cmp dl, '9'
  113. jg wczytaj2 ;nie liczba
  114.  
  115. mov ah, 2h
  116. int 21h
  117.  
  118. sub dl, '0'
  119. push dx
  120. mov ax, liczba2
  121. mov cx, 10
  122. mul cx
  123. pop dx
  124.  
  125. add ax, dx
  126. mov liczba2, ax
  127. jmp wczytaj2
  128.  
  129. koniec_wczytania2:
  130. mov dx, offset nl
  131. mov ah, 9h
  132. int 21h
  133.  
  134. mov dx, offset napis3
  135. mov ah, 9h
  136. int 21h
  137.  
  138. xor bx,bx
  139. wczytaj3:
  140.  
  141. ;cmp bx, 65535
  142. ;ja koniec_wczytania
  143.  
  144. mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
  145. int 21h
  146.  
  147. xor dx, dx
  148.  
  149. mov dl, al
  150. cmp dl, 13 ;enter
  151. je koniec_wczytania3
  152.  
  153. cmp dl, '0'
  154. jl wczytaj3 ;nie liczba
  155.  
  156. cmp dl, '9'
  157. jg wczytaj3 ;nie liczba
  158.  
  159. mov ah, 2h
  160. int 21h
  161.  
  162. sub dl, '0'
  163. push dx
  164. mov ax, liczba3
  165. mov cx, 10
  166. mul cx
  167. pop dx
  168.  
  169. add ax, dx
  170. mov liczba3, ax
  171. jmp wczytaj3
  172.  
  173. koniec_wczytania3:
  174.  
  175.  
  176. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  177. mov dx, offset nl
  178. mov ah, 9h
  179. int 21h
  180.  
  181. mov dx, offset suma
  182. mov ah, 9h
  183. int 21h
  184. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  185. ;wyswietlanie zawartosci liczbowej z rejestru ax
  186.  
  187.  
  188.  
  189. xor dx, dx
  190. mov ax, liczba
  191. mov bx, liczba2
  192. mul bx
  193. mov liczba, ax
  194. cmp dx, 0
  195. jnz koniec
  196.  
  197. wyswietl2:
  198.  
  199. mov cx, 0
  200. petla111:
  201. mov dx,0
  202. mov bx, 10
  203. div bx
  204. push dx
  205. inc cx
  206. cmp ax, 0
  207. jnz petla111
  208. petla211:
  209. pop dx
  210. mov ah, 02h
  211. add dl, 48
  212. int 21h
  213. loop petla211
  214.  
  215. koniec:
  216.  
  217. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  218. ;;; Wyjście do systemu DOS
  219. mov ah, 4ch
  220. int 21h
  221. kod ends
  222. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement