Advertisement
601legend

Untitled

May 23rd, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. assume cs:code, ds:data
  2. code segment
  3. begin:
  4. jmp main
  5.  
  6. chislo dw 0
  7. mult10 dw 1
  8.  
  9. main proc near
  10. mov ax, data
  11. mov ds,Ax
  12.  
  13.  
  14. mov ah, 09h
  15. lea dx, msg1
  16. int 21h
  17.  
  18. mov ah, 0ah
  19. lea dx,param
  20. int 21h
  21.  
  22. lea si,field -1
  23. mov bh,0
  24. mov bl, actlen
  25.  
  26. call InNumber
  27. mov ax,chislo
  28. mov c1,ax
  29.  
  30. mov chislo,0
  31. mov mult10,1
  32.  
  33. mov ah, 09h
  34. lea dx,new_line
  35. int 21h
  36.  
  37. mov ah, 09h
  38. lea dx, msg2
  39. int 21h
  40.  
  41.  
  42. mov ah, 0ah
  43. lea dx,param
  44. int 21h
  45.  
  46.  
  47. lea si,field - 1
  48. mov bh,0
  49. mov bl, actlen
  50.  
  51. call InNumber
  52.  
  53. mov ax,chislo
  54. mov d1,ax
  55.  
  56. mov ah, 09h
  57. lea dx,new_line
  58. int 21h
  59.  
  60. mov ah, 09h
  61. lea dx, msg3
  62. int 21h
  63.  
  64.  
  65. xor ax,ax
  66. xor bx,bx
  67. mov cx,5
  68. mov si,0
  69. vvod:
  70. mov tmp,si
  71. mov tmp2,cx
  72.  
  73. mov chislo,0
  74. mov mult10,1
  75.  
  76. mov ah, 09h
  77. lea dx,new_line
  78. int 21h
  79.  
  80.  
  81. mov ah, 0ah
  82. lea dx,param
  83. int 21h
  84.  
  85.  
  86. lea si,field - 1
  87. mov bh,0
  88. mov bl, actlen
  89.  
  90. call InNumber
  91.  
  92. mov ax,chislo
  93. mov si,tmp
  94. mov cx,tmp2
  95. mov array[si],ax
  96.  
  97. cmp ax,c1
  98. JAE checkc
  99. jmp exc
  100. checkc:
  101. cmp ax,d1
  102. JBE checkd
  103. jmp exc
  104. checkd:
  105. add k1,ax
  106. exc:
  107.  
  108. add si,2
  109. loop vvod
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. output:
  117. mov ax,k1
  118. mov chislo, ax
  119.  
  120.  
  121. call FromNumber
  122.  
  123.  
  124. mov ah, 09h
  125. lea dx,new_line
  126. int 21h
  127.  
  128.  
  129. mov ah, 09h
  130. lea dx, msg
  131. int 21h
  132.  
  133. mov ah, 09h
  134. lea dx,otvet
  135. int 21h
  136.  
  137. mov ah, 0ah
  138. lea dx,param
  139. int 21h
  140. mov ax,4c00h
  141. int 21h
  142. ret
  143. main endp
  144.  
  145. InNumber proc
  146.  
  147.  
  148.  
  149. mov cx,10
  150.  
  151.  
  152.  
  153.  
  154.  
  155. b20:
  156.  
  157. mov al,[si+bx]
  158.  
  159. and ax, 000fh
  160.  
  161. mul mult10
  162.  
  163. add chislo, ax
  164.  
  165. mov ax,mult10;
  166.  
  167. mul cx
  168.  
  169. mov mult10,ax
  170.  
  171. dec bx
  172.  
  173. jnz b20
  174.  
  175. ret
  176.  
  177. InNumber endp
  178.  
  179.  
  180.  
  181.  
  182.  
  183. FromNumber proc
  184. mov cx,0010;
  185. lea si, otvet + 5
  186. mov ax,chislo
  187.  
  188. mov bx, ax
  189. and bx, 8000h
  190. cmp bx, 8000h
  191. jb plus
  192.  
  193. mov bx, ax
  194. mov ax, 65535
  195. sub ax, bx
  196. add ax, 1
  197.  
  198. mov bx, 1
  199. plus:
  200.  
  201. c20:
  202. cmp ax,0010
  203. jb c30
  204. xor dx,dx
  205. div cx
  206. or dl,30h
  207. mov [si],dl
  208. dec si
  209. jmp c20
  210.  
  211. c30:
  212. or al,30h
  213. mov [si],al
  214.  
  215. cmp bx, 1
  216. je addminus
  217. ret
  218. addminus:
  219. dec si
  220. mov al, zminus
  221. mov [si], al
  222. ret
  223. FromNumber endp
  224. ;=============================================
  225.  
  226. code ends
  227.  
  228. data segment
  229. new_line db 0dh,0ah,'$'
  230. msg db 'Rezultat = $'
  231. msg1 db 'Vvedite c: $'
  232. msg2 db 'Vvedite d: $'
  233. msg3 db 'Vvedite 5 elementov massiva: $'
  234. otvet db ' $'
  235. zminus db '-'
  236. array dw 5 dup (?)
  237. tmp dw 0
  238. tmp2 dw 0
  239. k1 dw 0
  240. c1 dw ?
  241. d1 dw ?
  242. param label byte
  243. maxlen db 20
  244. actlen db ?
  245. field db 20 dup(' ')
  246.  
  247. data ends
  248. stk segment
  249. db 256 dup (?)
  250. stk ends
  251. end begin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement