Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.44 KB | None | 0 0
  1. ;1nr spatii din sir
  2. DATA SEGMENT PARA PUBLIC 'DATA'
  3. ARR DB "ANA ARE MERE si pere"
  4. LARR DB $-ARR
  5. DATA ENDS
  6.  
  7. CODE SEGMENT PARA PUBLIC 'CODE'
  8. START PROC FAR
  9. ASSUME CS:CODE,DS:DATA
  10. PUSH DS
  11. XOR AX,AX
  12. PUSH AX
  13. MOV AX,DATA
  14. MOV DS,AX
  15.  
  16. XOR SI, OFFSET ARR
  17. MOV BL, 0
  18. MOV CL, LARR
  19.  
  20. spatiu_LOOP:
  21. MOV AL, [SI]
  22. CMP AL, " "
  23. JNE END_LOOP
  24. INC BL
  25.  
  26. END_LOOP:
  27. INC SI
  28. LOOP spatiu_LOOP
  29.  
  30. XOR AX,AX
  31. MOV AX,BX
  32. ;DISPLAY
  33. mov dl,'0'
  34. add dl,al
  35. mov ah,02h
  36. int 21h
  37.  
  38. RET
  39.  
  40. START ENDP
  41. CODE ENDS
  42. END START
  43.  
  44.  
  45. ;2suma nr pare din sir
  46. DATA SEGMENT PARA PUBLIC 'DATA'
  47. ARR DB 1,2,4,3
  48. LARR DB $-ARR
  49. SUM DB 0
  50. ONE DB 1
  51. TWO DB 2
  52. DATA ENDS
  53.  
  54. CODE SEGMENT PARA PUBLIC 'CODE'
  55. START PROC FAR
  56. ASSUME CS:CODE,DS:DATA
  57. PUSH DS
  58. XOR AX,AX
  59. PUSH AX
  60. MOV AX,DATA
  61. MOV DS,AX
  62.  
  63. XOR SI, OFFSET ARR
  64. MOV CL, LARR
  65.  
  66. PAR_LOOP:
  67. MOV BL, [SI]
  68. XOR AX,AX
  69. MOV AL,BL
  70.  
  71. DIV TWO
  72.  
  73. CMP AH,ONE
  74. JE END_LOOP
  75. ADD SUM,BL
  76. END_LOOP:
  77. INC SI
  78. LOOP PAR_LOOP
  79.  
  80. MOV AL,SUM
  81.  
  82. ;DISPLAY sum
  83. mov dl,'0'
  84. add dl,AL
  85. mov ah,02h
  86. int 21h
  87.  
  88. RET
  89.  
  90. START ENDP
  91. CODE ENDS
  92. END START
  93.  
  94.  
  95. ;3 concat
  96. data segment para public 'data'
  97. a1 db 1,2,3,4
  98. a db $-a1
  99. a2 db 5,6,7,8
  100. a2L db $-a2
  101. a3 db 10 DUP(?)
  102. two db 2
  103. data ends
  104.  
  105. code segment para public 'code'
  106. start proc far
  107. assume cs:code,ds:data
  108.  
  109. push ds
  110. xor ax,ax
  111. push ax
  112. mov ax,data
  113. mov ds,ax
  114.  
  115. xor cx,cx
  116. mov cl,a
  117.  
  118. xor si, offset a1
  119. xor bx,bx
  120.  
  121. insertL:
  122. xor ax,ax
  123. mov al,a1[si]
  124. mov a3[bx], al
  125.  
  126. add bx, 2
  127. inc si
  128.  
  129. loop insertL
  130.  
  131. mov cl,a2L
  132.  
  133. mov si,3
  134.  
  135. xor bx,bx
  136. add bx,1
  137. insertL2:
  138. xor ax,ax
  139. mov al,a2[si]
  140. mov a3[bx], al
  141.  
  142. add bx, 2
  143.  
  144. dec si
  145.  
  146. loop insertL2
  147.  
  148. ret
  149.  
  150. start endp
  151. code ends
  152. end start
  153.  
  154.  
  155. ;4suma nr pare din sir
  156. DATA SEGMENT PARA PUBLIC 'DATA'
  157. ARR DB 1,2,4,8,5
  158. LARR DB $-ARR
  159. SUM DB 0
  160. ONE DB 1
  161. Four DB 4
  162. DATA ENDS
  163.  
  164. CODE SEGMENT PARA PUBLIC 'CODE'
  165. START PROC FAR
  166. ASSUME CS:CODE,DS:DATA
  167. PUSH DS
  168. XOR AX,AX
  169. PUSH AX
  170. MOV AX,DATA
  171. MOV DS,AX
  172.  
  173. XOR SI, OFFSET ARR
  174. MOV CL, LARR
  175.  
  176. PAR_LOOP:
  177. MOV BL, [SI]
  178. XOR AX,AX
  179. MOV AL,BL
  180.  
  181. DIV Four
  182.  
  183. CMP AH,ONE
  184. JGE END_LOOP
  185. ADD SUM,BL
  186. END_LOOP:
  187. INC SI
  188. LOOP PAR_LOOP
  189.  
  190. XOR AX,AX
  191. MOV AL,SUM
  192. RET
  193.  
  194. START ENDP
  195. CODE ENDS
  196. END START
  197.  
  198. ;5heron
  199. data segment para public 'data'
  200. p dq ?
  201. a dq 3.0
  202. b dq 4.0
  203. c dq 5.0
  204. two dq 2.0
  205.  
  206. data ends
  207.  
  208. code segment para public 'code'
  209. .8087
  210. start proc far
  211. assume cs:code, ds:data
  212.  
  213. push ds
  214. xor ax,ax
  215. push ax
  216. mov ax, data
  217. mov ds,ax
  218. xor ax,ax
  219.  
  220. finit
  221.  
  222. FLD a ;3
  223. FLD b ;4
  224. FADD ;7
  225. FLD c ;5
  226. FADD ;12
  227.  
  228. FDIV TWO ;6
  229.  
  230. FSTP p ;6
  231.  
  232. FLD p ;6
  233. FLD a ;3
  234. fsub ;3
  235. fmul p ;18
  236. fld p ;6
  237. fld b ;4
  238. fsub ;2
  239. fmul ;36
  240. fld p ;6
  241. fld c ;5
  242. fsub ;1
  243. fmul ;36
  244. fsqrt ;6
  245. fwait
  246. ret
  247. start endp
  248. code ends
  249. end start
  250.  
  251.  
  252. ;n^3 + n^2 +9
  253. DATA SEGMENT PARA PUBLIC 'DATA'
  254. N DB 6
  255. N2 DB 0
  256. DATA ENDS
  257.  
  258. CODE SEGMENT PARA PUBLIC 'CODE'
  259. START PROC FAR
  260. ASSUME CS:CODE,DS:DATA
  261. PUSH DS
  262. XOR AX,AX
  263. PUSH AX
  264. MOV AX,DATA
  265. MOV DS,AX
  266.  
  267. XOR AX,AX
  268. MOV AL,N ; n
  269. MUL N ; n^2
  270. MOV N2,AL ; n2 = n^2
  271. MUL N ; n^3
  272. ADD AL,N2
  273. ADD AL, 9
  274.  
  275.  
  276. RET
  277.  
  278. START ENDP
  279. CODE ENDS
  280. END START
  281.  
  282.  
  283. ;7nr maxim din sir
  284. DATA SEGMENT PARA PUBLIC 'DATA'
  285. ARR DB 4,6,2,9,6,1
  286. LARR DB $-ARR
  287. DATA ENDS
  288.  
  289. CODE SEGMENT PARA PUBLIC 'CODE'
  290. START PROC FAR
  291. ASSUME CS:CODE,DS:DATA
  292. PUSH DS
  293. XOR AX,AX
  294. PUSH AX
  295. MOV AX,DATA
  296. MOV DS,AX
  297.  
  298. XOR SI, OFFSET ARR
  299. mov al,[si]
  300. mov bl,al
  301. MOV CL, LARR
  302.  
  303. MAX_LOOP:
  304. MOV AL, [SI]
  305. CMP AL, BL
  306. JLE END_LOOP
  307.  
  308. MOV BL, AL
  309. END_LOOP:
  310. INC SI
  311. LOOP MAX_LOOP
  312.  
  313. ;DISPLAY max value
  314. mov dl,'0'
  315. add dl,bl
  316. mov ah,02h
  317. int 21h
  318.  
  319. RET
  320.  
  321. START ENDP
  322. CODE ENDS
  323. END START
  324.  
  325. ;8min
  326. DATA SEGMENT PARA PUBLIC 'DATA'
  327. ARR DB 3,6,2,5,6,9
  328. LARR DB $-ARR
  329. DATA ENDS
  330.  
  331. CODE SEGMENT PARA PUBLIC 'CODE'
  332. START PROC FAR
  333. ASSUME CS:CODE,DS:DATA
  334. PUSH DS
  335. XOR AX,AX
  336. PUSH AX
  337. MOV AX,DATA
  338. MOV DS,AX
  339.  
  340. XOR SI, OFFSET ARR
  341. MOV AL, [SI]
  342. MOV BL, AL
  343. MOV CL, LARR
  344.  
  345. MIN_LOOP:
  346. MOV AL, [SI]
  347. CMP AL, BL
  348. JGE END_LOOP
  349.  
  350. MOV BL, AL
  351. END_LOOP:
  352. INC SI
  353. LOOP MIN_LOOP
  354.  
  355. ;DISPLAY min value
  356. mov dl,'0'
  357. add dl,bl
  358. mov ah,02h
  359. int 21h
  360.  
  361. RET
  362.  
  363. START ENDP
  364. CODE ENDS
  365. END START
  366.  
  367. ;9media numerelor unui sir
  368. DATA SEGMENT PARA PUBLIC 'DATA'
  369. ARR DB 5,3,4
  370. LARR DB $-ARR
  371. DATA ENDS
  372.  
  373. CODE SEGMENT PARA PUBLIC 'CODE'
  374. START PROC FAR
  375. ASSUME CS:CODE,DS:DATA
  376. PUSH DS
  377. XOR AX,AX
  378. PUSH AX
  379. MOV AX,DATA
  380. MOV DS,AX
  381.  
  382. XOR SI, OFFSET ARR
  383. MOV AL, [SI]
  384. MOV BL, 0
  385. MOV CL, LARR
  386.  
  387. SUM_LOOP:
  388.  
  389. MOV AL, [SI]
  390. ADD BL,AL
  391.  
  392. END_LOOP:
  393. INC SI
  394. LOOP SUM_LOOP
  395.  
  396. MOV AX,BX
  397. DIV LARR
  398.  
  399. ;DISPLAY average value
  400. mov dl,'0'
  401. add dl,al
  402. mov ah,02h
  403. int 21h
  404.  
  405. RET
  406.  
  407. START ENDP
  408. CODE ENDS
  409. END START
  410.  
  411.  
  412. ;10nr voc
  413. DATA SEGMENT PARA PUBLIC 'DATA'
  414. STRING DB "I love assembly$"
  415. VOWEL DB ?
  416. DATA ENDS
  417.  
  418. CODE SEGMENT PARA PUBLIC 'CODE'
  419. START PROC FAR
  420. ASSUME CS:CODE,DS:DATA
  421.  
  422. MOV AX, @DATA
  423. MOV DS, AX
  424. MOV SI, OFFSET STRING
  425. MOV BL, 00
  426.  
  427. BACK: MOV AL, [SI]
  428. CMP AL,'$'
  429. JZ FINAL
  430. CMP AL,'A'
  431. JZ COUNT
  432. CMP AL,'E'
  433. JZ COUNT
  434. CMP AL,'I'
  435. JZ COUNT
  436. CMP AL,'O'
  437. JZ COUNT
  438. CMP AL,'U'
  439. JZ COUNT
  440. CMP AL,'a'
  441. JZ COUNT
  442. CMP AL,'e'
  443. JZ COUNT
  444. CMP AL,'i'
  445. JZ COUNT
  446. CMP AL,'o'
  447. JZ COUNT
  448. CMP AL,'u'
  449. JZ COUNT
  450. INC SI
  451. JMP BACK
  452.  
  453. COUNT: INC BL
  454. MOV VOWEL, BL
  455. INC SI
  456. JMP BACK
  457.  
  458. FINAL: MOV AH, 4CH
  459. INT 21H
  460.  
  461. START ENDP
  462. CODE ENDS
  463. END START
  464.  
  465.  
  466. ;11cate nr pare sunt in sir
  467. DATA SEGMENT PARA PUBLIC 'DATA'
  468. ARR DB 1,2,4,3,6,3
  469. LARR DB $-ARR
  470. SUM DB 0
  471. ONE DB 1
  472. TWO DB 2
  473. DATA ENDS
  474.  
  475. CODE SEGMENT PARA PUBLIC 'CODE'
  476. START PROC FAR
  477. ASSUME CS:CODE,DS:DATA
  478. PUSH DS
  479. XOR AX,AX
  480. PUSH AX
  481. MOV AX,DATA
  482. MOV DS,AX
  483.  
  484. XOR SI, OFFSET ARR
  485. MOV CL, LARR
  486.  
  487. PAR_LOOP:
  488. MOV BL, [SI]
  489. XOR AX,AX
  490. MOV AL,BL
  491.  
  492. DIV TWO
  493.  
  494. CMP AH,ONE
  495. JE END_LOOP
  496. INC SUM
  497. END_LOOP:
  498. INC SI
  499. LOOP PAR_LOOP
  500.  
  501.  
  502. XOR AX,AX
  503. MOV AL,SUM
  504.  
  505. ;DISPLAY
  506. mov dl,'0'
  507. add dl,al
  508. mov ah,02h
  509. int 21h
  510.  
  511. RET
  512.  
  513.  
  514.  
  515. START ENDP
  516. CODE ENDS
  517. END START
  518.  
  519. ;12nr maxim din sir
  520. DATA SEGMENT PARA PUBLIC 'DATA'
  521. ARR DB 3,7,5,6,4
  522. LARR DB $-ARR
  523. MAX DB ?
  524. MIN DB ?
  525. ONE DB 1
  526. TWO DB 2
  527. DATA ENDS
  528.  
  529. CODE SEGMENT PARA PUBLIC 'CODE'
  530. START PROC FAR
  531. ASSUME CS:CODE,DS:DATA
  532. PUSH DS
  533. XOR AX,AX
  534. PUSH AX
  535. MOV AX,DATA
  536. MOV DS,AX
  537.  
  538. ;MAX
  539. XOR SI, OFFSET ARR
  540. mov al,[si]
  541. mov bl,al
  542. MOV CL, LARR
  543.  
  544. MAX_LOOP:
  545. MOV AL, [SI]
  546. CMP AL, BL
  547. JLE endmax
  548.  
  549. MOV BL, AL
  550. endmax:
  551. INC SI
  552. LOOP MAX_LOOP
  553.  
  554. MOV MAX,bl
  555.  
  556. XOR AX,AX
  557. XOR SI,SI
  558. XOR BX,BX
  559. XOR CL,CL
  560. ;MIN
  561.  
  562. XOR SI, OFFSET ARR
  563. MOV AL, [SI]
  564. MOV BL, AL
  565. MOV CL, LARR
  566.  
  567. MIN_LOOP:
  568. MOV AL, [SI]
  569. CMP AL, BL
  570. JGE END_LOOP
  571.  
  572. MOV BL, AL
  573. END_LOOP:
  574. INC SI
  575. LOOP MIN_LOOP
  576.  
  577. MOV MIN,bl
  578.  
  579. XOR AX,AX
  580. XOR BX,BX
  581. MOV AL,MIN
  582. MOV BL,MAX
  583.  
  584. ;Verify the nr of elem
  585. XOR AX,AX
  586. XOR BX,BX
  587.  
  588. MOV AL,LARR
  589. DIV TWO
  590.  
  591. CMP AH,ONE
  592. JE endit
  593. MOV BL,MAX
  594. JMP lbl
  595. endit:
  596. MOV BL,Min
  597.  
  598. lbl:
  599. XOR AX,AX
  600. MOV AL,BL
  601. ;DISPLAY
  602. mov dl,'0'
  603. add dl,BL
  604. mov ah,02h
  605. int 21h
  606.  
  607. RET
  608.  
  609. START ENDP
  610. CODE ENDS
  611. END START
  612.  
  613. ;13
  614. data segment para public 'data'
  615. arr db 1,2,3,4,5,6,7,8
  616. lth db $-arr
  617. two db 2
  618. one db 1
  619. zero db 0
  620. ten db 10
  621. data ends
  622.  
  623. code segment para public 'code'
  624. main proc far
  625. assume cs:code, ds:data
  626.  
  627. push ds
  628. xor ax,ax
  629. push ax
  630. mov ax, data
  631. mov ds,ax
  632.  
  633. xor cx,cx
  634. mov cl, lth
  635. xor si, offset arr
  636.  
  637. changeOdds:
  638. xor ax,ax
  639. mov al, arr[si]
  640. div two
  641. cmp ah, one
  642. JNE loopend
  643. mov al, arr[si]
  644. mul al
  645. mov arr[si], al
  646. loopend:
  647. inc si
  648. loop changeOdds
  649.  
  650. xor cx,cx
  651. mov cl, lth
  652. mov si, 0
  653.  
  654.  
  655. changeEvens:
  656. xor ax,ax
  657. mov al, arr[si]
  658. div two
  659. cmp ah, zero
  660. JNE loopendEven
  661. mov al, arr[si]
  662. mul ten
  663. mov arr[si], al
  664. loopendEven:
  665. inc si
  666. loop changeEvens
  667.  
  668. ret
  669. main endp
  670. code ends
  671. end main
  672.  
  673. ;15
  674. DATA SEGMENT PARA PUBLIC 'DATA'
  675. ARRAY DB -1, 2, 3, -4, 0, 0
  676. ARRAY_LEN DW $-ARRAY
  677. NPOS DB 0
  678. NNEG DB 0
  679. NZER DB 0
  680. DATA ENDS
  681.  
  682. CODE SEGMENT PARA PUBLIC 'CODE'
  683. START PROC FAR
  684. ASSUME DS:DATA, CS:CODE
  685.  
  686. PUSH DS
  687. XOR AX, AX
  688. PUSH AX
  689. MOV AX, DATA
  690. MOV DS, AX
  691.  
  692. MOV SI, OFFSET ARRAY
  693. MOV CX, ARRAY_LEN
  694. CHECK :
  695. MOV AL, [SI]
  696. CALL CHECK_NUMBER
  697. CMP AH, 02H
  698. JL NPOS_INCREMENT
  699. JE NNEG_INCREMENT
  700. JG NZER_INCREMENT
  701.  
  702. NPOS_INCREMENT :
  703. INC NPOS
  704. INC SI
  705. LOOP CHECK
  706.  
  707. NNEG_INCREMENT :
  708. INC NNEG
  709. INC SI
  710. LOOP CHECK
  711.  
  712. NZER_INCREMENT :
  713. INC NZER
  714. INC SI
  715. LOOP CHECK
  716.  
  717. RET
  718.  
  719. PROC CHECK_NUMBER
  720. XOR AH, AH
  721. CMP AL, 0
  722. JL NEG_FOUND
  723. JG POS_FOUND
  724. JE ZER_FOUND
  725.  
  726. NEG_FOUND :
  727. MOV AH, 01H
  728. RET
  729.  
  730. POS_FOUND :
  731. MOV AH, 02H
  732. RET
  733.  
  734. ZER_FOUND :
  735. MOV AH, 03H
  736. RET
  737. ENDP CHECK_NUMBER
  738.  
  739. ENDP START
  740. CODE ENDS
  741. END START
  742. ;16
  743. data segment para public 'data'
  744. radius dq 5.0
  745. height dq 4.0
  746. volume dq ?
  747. three dq 3.0
  748. data ends
  749.  
  750. code segment para public 'code'
  751. main proc far
  752. assume cs:code,ds:data
  753.  
  754. push ds
  755. xor ax,ax
  756. push ax
  757. mov ax, data
  758. mov ds,ax
  759.  
  760. finit
  761. fld1
  762. fdiv three
  763.  
  764. fldPi
  765. fmul
  766. fld radius
  767. fld radius
  768. fmul
  769. fmul
  770. fld height
  771. fmul
  772. fstp volume
  773. fwait
  774. ret
  775. main endp
  776. code ends
  777. end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement