Advertisement
Guest User

Untitled

a guest
May 27th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. ;
  2. ; suskaiciuoti / (b+c^2)/(x-b) , kai x>b
  3. ; y = | 7*a+x , kai x=b
  4. ; \ c+2*a+x , kai x<b
  5. ; skaiciai be zenklo
  6. ; Duomenys a - w, b - b, c - w, x - w, y - b
  7.  
  8. stekas SEGMENT STACK
  9. DB 256 DUP(0)
  10. stekas ENDS
  11.  
  12. duom SEGMENT
  13. a DW 10 ;10000 ; perpildymo situacijai
  14. b DB 10
  15. c DW 8
  16. x DW 10,20,10,41,12,9,45,6
  17. kiek = ($-x)/2
  18. y DB kiek dup(0AAh)
  19. isvb DB 'x=',6 dup (?), ' y=',6 dup (?), 0Dh, 0Ah, '$'
  20. perp DB 'Perpildymas', 0Dh, 0Ah, '$'
  21. daln DB 'Dalyba is nulio', 0Dh, 0Ah, '$'
  22. netb DB 'Netelpa i baita', 0Dh, 0Ah, '$'
  23. spausk DB 'Skaiciavimas baigtas, spausk bet kuri klavisa,', 0Dh, 0Ah, '$'
  24. duom ENDS
  25.  
  26. prog SEGMENT
  27. assume ss:stekas, ds:duom, cs:prog
  28. pr: MOV ax, duom
  29. MOV ds, ax
  30. XOR si, si ; (suma mod 2) si = 0
  31. XOR di, di ; di = 0
  32. c_pr: MOV cx, kiek
  33. JCXZ pab
  34. cikl:
  35. MOV al, b
  36. XOR ah, ah ; MOV ah, 0
  37. CMP x[si], ax
  38. JE f2
  39. JB f3
  40. f1: MOV ax, c
  41. MUL c ; dx:ax=c^2
  42. JC kl1 ; sandauga netilpo i ax
  43. XCHG ax, dx
  44. MOV al, b
  45. XOR ah, ah
  46. ADD dx, ax ; c^2+b
  47. JC kl1
  48. MOV bx, x[si]
  49. SUB bx, ax ; x-b
  50. JC kl1
  51. CMP bx, 0
  52. JE kl2 ; dalyba is 0
  53. MOV ax, dx
  54. XOR dx, dx
  55. DIV bx ; ax=rez
  56. JMP re
  57. f2: MOV ax, 7
  58. MUL a
  59. JC kl1 ; sandauga netilpo i ax
  60. ADD ax, x[si] ;7a+x
  61. JC kl1
  62. JMP re
  63. f3: MOV ax, 2
  64. MUL a
  65. JC kl1 ; sandauga netilpo i ax
  66. ADD ax, c ;2a+c
  67. JC kl1
  68. ADD ax, x[si]
  69. JC kl1
  70. re:
  71. CMP ah, 0 ;ar telpa rezultatasi baita
  72. JE ger
  73. JMP kl3
  74. ger: MOV y[di], al
  75. INC si
  76. INC si
  77. INC di
  78. LOOP cikl
  79. pab:
  80. ;rezultatu isvedimas i ekrana
  81. ;============================
  82. XOR si, si
  83. XOR di, di
  84. MOV cx, kiek
  85. JCXZ is_pab
  86. is_cikl:
  87. MOV ax, x[si] ; isvedamas skaicius x yra ax reg.
  88. PUSH ax
  89. MOV bx, offset isvb+2
  90. PUSH bx
  91. CALL binasc
  92. MOV al, y[di]
  93. XOR ah, ah ; isvedamas skaicius y yra ax reg.
  94. PUSH ax
  95. MOV bx, offset isvb+11
  96. PUSH bx
  97. CALL binasc
  98.  
  99. MOV dx, offset isvb
  100. MOV ah, 9h
  101. INT 21h
  102. ;============================
  103. INC si
  104. INC si
  105. INC di
  106. LOOP is_cikl
  107. is_pab:
  108. ;===== PAUZE ===================
  109. ;===== paspausti bet kuri klavisa ===
  110. LEA dx, spausk
  111. MOV ah, 9
  112. INT 21h
  113. MOV ah, 0
  114. INT 16h
  115. ;============================
  116. MOV ah, 4Ch ; programos pabaiga, grizti i OS
  117. INT 21h
  118. ;============================
  119.  
  120. kl1: LEA dx, perp
  121. MOV ah, 9
  122. INT 21h
  123. XOR al, al
  124. JMP ger
  125. kl2: LEA dx, daln
  126. MOV ah, 9
  127. INT 21h
  128. XOR al, al
  129. JMP ger
  130. kl3: LEA dx, netb
  131. MOV ah, 9
  132. INT 21h
  133. XOR al, al
  134. JMP ger
  135.  
  136. ; skaiciu vercia i desimtaine sist. ir issaugo
  137. ; ASCII kode. Parametrai perduodami per steka
  138. ; Pirmasis parametras ([bp+6])- verciamas skaicius
  139. ; Antrasis parametras ([bp+4])- vieta rezultatui
  140.  
  141. binasc PROC NEAR
  142. PUSH bp
  143. MOV bp, sp
  144. ; naudojamu registru issaugojimas
  145. PUSHA
  146. ; rezultato eilute uzpildome tarpais
  147. MOV cx, 6
  148. MOV bx, [bp+4]
  149. tarp: MOV byte ptr[bx], ' '
  150. INC bx
  151. LOOP tarp
  152. ; skaicius paruosiamas dalybai is 10
  153. MOV ax, [bp+6]
  154. MOV si, 10
  155. val: XOR dx, dx
  156. DIV si
  157. ; gauta liekana verciame i ASCII koda
  158. ADD dx, '0' ; galima--> ADD dx, 30h
  159. ; irasome skaitmeni i eilutes pabaiga
  160. DEC bx
  161. MOV [bx], dl
  162. ; skaiciuojame pervestu simboliu kieki
  163. INC cx
  164. ; ar dar reikia kartoti dalyba?
  165. CMP ax, 0
  166. JNZ val
  167.  
  168. POPA
  169. POP bp
  170. RET
  171. binasc ENDP
  172. prog ENDS
  173. END pr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement