Advertisement
Guest User

Untitled

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