Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;1nr spatii din sir
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARR DB "ANA ARE MERE si pere"
- LARR DB $-ARR
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- XOR SI, OFFSET ARR
- MOV BL, 0
- MOV CL, LARR
- spatiu_LOOP:
- MOV AL, [SI]
- CMP AL, " "
- JNE END_LOOP
- INC BL
- END_LOOP:
- INC SI
- LOOP spatiu_LOOP
- XOR AX,AX
- MOV AX,BX
- ;DISPLAY
- mov dl,'0'
- add dl,al
- mov ah,02h
- int 21h
- RET
- START ENDP
- CODE ENDS
- END START
- ;2suma nr pare din sir
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARR DB 1,2,4,3
- LARR DB $-ARR
- SUM DB 0
- ONE DB 1
- TWO DB 2
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- XOR SI, OFFSET ARR
- MOV CL, LARR
- PAR_LOOP:
- MOV BL, [SI]
- XOR AX,AX
- MOV AL,BL
- DIV TWO
- CMP AH,ONE
- JE END_LOOP
- ADD SUM,BL
- END_LOOP:
- INC SI
- LOOP PAR_LOOP
- MOV AL,SUM
- ;DISPLAY sum
- mov dl,'0'
- add dl,AL
- mov ah,02h
- int 21h
- RET
- START ENDP
- CODE ENDS
- END START
- ;3 concat
- data segment para public 'data'
- a1 db 1,2,3,4
- a db $-a1
- a2 db 5,6,7,8
- a2L db $-a2
- a3 db 10 DUP(?)
- two db 2
- data ends
- code segment para public 'code'
- start proc far
- assume cs:code,ds:data
- push ds
- xor ax,ax
- push ax
- mov ax,data
- mov ds,ax
- xor cx,cx
- mov cl,a
- xor si, offset a1
- xor bx,bx
- insertL:
- xor ax,ax
- mov al,a1[si]
- mov a3[bx], al
- add bx, 2
- inc si
- loop insertL
- mov cl,a2L
- mov si,3
- xor bx,bx
- add bx,1
- insertL2:
- xor ax,ax
- mov al,a2[si]
- mov a3[bx], al
- add bx, 2
- dec si
- loop insertL2
- ret
- start endp
- code ends
- end start
- ;4suma nr pare din sir
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARR DB 1,2,4,8,5
- LARR DB $-ARR
- SUM DB 0
- ONE DB 1
- Four DB 4
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- XOR SI, OFFSET ARR
- MOV CL, LARR
- PAR_LOOP:
- MOV BL, [SI]
- XOR AX,AX
- MOV AL,BL
- DIV Four
- CMP AH,ONE
- JGE END_LOOP
- ADD SUM,BL
- END_LOOP:
- INC SI
- LOOP PAR_LOOP
- XOR AX,AX
- MOV AL,SUM
- RET
- START ENDP
- CODE ENDS
- END START
- ;5heron
- data segment para public 'data'
- p dq ?
- a dq 3.0
- b dq 4.0
- c dq 5.0
- two dq 2.0
- data ends
- code segment para public 'code'
- .8087
- start proc far
- assume cs:code, ds:data
- push ds
- xor ax,ax
- push ax
- mov ax, data
- mov ds,ax
- xor ax,ax
- finit
- FLD a ;3
- FLD b ;4
- FADD ;7
- FLD c ;5
- FADD ;12
- FDIV TWO ;6
- FSTP p ;6
- FLD p ;6
- FLD a ;3
- fsub ;3
- fmul p ;18
- fld p ;6
- fld b ;4
- fsub ;2
- fmul ;36
- fld p ;6
- fld c ;5
- fsub ;1
- fmul ;36
- fsqrt ;6
- fwait
- ret
- start endp
- code ends
- end start
- ;n^3 + n^2 +9
- DATA SEGMENT PARA PUBLIC 'DATA'
- N DB 6
- N2 DB 0
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- XOR AX,AX
- MOV AL,N ; n
- MUL N ; n^2
- MOV N2,AL ; n2 = n^2
- MUL N ; n^3
- ADD AL,N2
- ADD AL, 9
- RET
- START ENDP
- CODE ENDS
- END START
- ;7nr maxim din sir
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARR DB 4,6,2,9,6,1
- LARR DB $-ARR
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- XOR SI, OFFSET ARR
- mov al,[si]
- mov bl,al
- MOV CL, LARR
- MAX_LOOP:
- MOV AL, [SI]
- CMP AL, BL
- JLE END_LOOP
- MOV BL, AL
- END_LOOP:
- INC SI
- LOOP MAX_LOOP
- ;DISPLAY max value
- mov dl,'0'
- add dl,bl
- mov ah,02h
- int 21h
- RET
- START ENDP
- CODE ENDS
- END START
- ;8min
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARR DB 3,6,2,5,6,9
- LARR DB $-ARR
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- XOR SI, OFFSET ARR
- MOV AL, [SI]
- MOV BL, AL
- MOV CL, LARR
- MIN_LOOP:
- MOV AL, [SI]
- CMP AL, BL
- JGE END_LOOP
- MOV BL, AL
- END_LOOP:
- INC SI
- LOOP MIN_LOOP
- ;DISPLAY min value
- mov dl,'0'
- add dl,bl
- mov ah,02h
- int 21h
- RET
- START ENDP
- CODE ENDS
- END START
- ;9media numerelor unui sir
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARR DB 5,3,4
- LARR DB $-ARR
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- XOR SI, OFFSET ARR
- MOV AL, [SI]
- MOV BL, 0
- MOV CL, LARR
- SUM_LOOP:
- MOV AL, [SI]
- ADD BL,AL
- END_LOOP:
- INC SI
- LOOP SUM_LOOP
- MOV AX,BX
- DIV LARR
- ;DISPLAY average value
- mov dl,'0'
- add dl,al
- mov ah,02h
- int 21h
- RET
- START ENDP
- CODE ENDS
- END START
- ;10nr voc
- DATA SEGMENT PARA PUBLIC 'DATA'
- STRING DB "I love assembly$"
- VOWEL DB ?
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- MOV AX, @DATA
- MOV DS, AX
- MOV SI, OFFSET STRING
- MOV BL, 00
- BACK: MOV AL, [SI]
- CMP AL,'$'
- JZ FINAL
- CMP AL,'A'
- JZ COUNT
- CMP AL,'E'
- JZ COUNT
- CMP AL,'I'
- JZ COUNT
- CMP AL,'O'
- JZ COUNT
- CMP AL,'U'
- JZ COUNT
- CMP AL,'a'
- JZ COUNT
- CMP AL,'e'
- JZ COUNT
- CMP AL,'i'
- JZ COUNT
- CMP AL,'o'
- JZ COUNT
- CMP AL,'u'
- JZ COUNT
- INC SI
- JMP BACK
- COUNT: INC BL
- MOV VOWEL, BL
- INC SI
- JMP BACK
- FINAL: MOV AH, 4CH
- INT 21H
- START ENDP
- CODE ENDS
- END START
- ;11cate nr pare sunt in sir
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARR DB 1,2,4,3,6,3
- LARR DB $-ARR
- SUM DB 0
- ONE DB 1
- TWO DB 2
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- XOR SI, OFFSET ARR
- MOV CL, LARR
- PAR_LOOP:
- MOV BL, [SI]
- XOR AX,AX
- MOV AL,BL
- DIV TWO
- CMP AH,ONE
- JE END_LOOP
- INC SUM
- END_LOOP:
- INC SI
- LOOP PAR_LOOP
- XOR AX,AX
- MOV AL,SUM
- ;DISPLAY
- mov dl,'0'
- add dl,al
- mov ah,02h
- int 21h
- RET
- START ENDP
- CODE ENDS
- END START
- ;12nr maxim din sir
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARR DB 3,7,5,6,4
- LARR DB $-ARR
- MAX DB ?
- MIN DB ?
- ONE DB 1
- TWO DB 2
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME CS:CODE,DS:DATA
- PUSH DS
- XOR AX,AX
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- ;MAX
- XOR SI, OFFSET ARR
- mov al,[si]
- mov bl,al
- MOV CL, LARR
- MAX_LOOP:
- MOV AL, [SI]
- CMP AL, BL
- JLE endmax
- MOV BL, AL
- endmax:
- INC SI
- LOOP MAX_LOOP
- MOV MAX,bl
- XOR AX,AX
- XOR SI,SI
- XOR BX,BX
- XOR CL,CL
- ;MIN
- XOR SI, OFFSET ARR
- MOV AL, [SI]
- MOV BL, AL
- MOV CL, LARR
- MIN_LOOP:
- MOV AL, [SI]
- CMP AL, BL
- JGE END_LOOP
- MOV BL, AL
- END_LOOP:
- INC SI
- LOOP MIN_LOOP
- MOV MIN,bl
- XOR AX,AX
- XOR BX,BX
- MOV AL,MIN
- MOV BL,MAX
- ;Verify the nr of elem
- XOR AX,AX
- XOR BX,BX
- MOV AL,LARR
- DIV TWO
- CMP AH,ONE
- JE endit
- MOV BL,MAX
- JMP lbl
- endit:
- MOV BL,Min
- lbl:
- XOR AX,AX
- MOV AL,BL
- ;DISPLAY
- mov dl,'0'
- add dl,BL
- mov ah,02h
- int 21h
- RET
- START ENDP
- CODE ENDS
- END START
- ;13
- data segment para public 'data'
- arr db 1,2,3,4,5,6,7,8
- lth db $-arr
- two db 2
- one db 1
- zero db 0
- ten db 10
- data ends
- code segment para public 'code'
- main proc far
- assume cs:code, ds:data
- push ds
- xor ax,ax
- push ax
- mov ax, data
- mov ds,ax
- xor cx,cx
- mov cl, lth
- xor si, offset arr
- changeOdds:
- xor ax,ax
- mov al, arr[si]
- div two
- cmp ah, one
- JNE loopend
- mov al, arr[si]
- mul al
- mov arr[si], al
- loopend:
- inc si
- loop changeOdds
- xor cx,cx
- mov cl, lth
- mov si, 0
- changeEvens:
- xor ax,ax
- mov al, arr[si]
- div two
- cmp ah, zero
- JNE loopendEven
- mov al, arr[si]
- mul ten
- mov arr[si], al
- loopendEven:
- inc si
- loop changeEvens
- ret
- main endp
- code ends
- end main
- ;15
- DATA SEGMENT PARA PUBLIC 'DATA'
- ARRAY DB -1, 2, 3, -4, 0, 0
- ARRAY_LEN DW $-ARRAY
- NPOS DB 0
- NNEG DB 0
- NZER DB 0
- DATA ENDS
- CODE SEGMENT PARA PUBLIC 'CODE'
- START PROC FAR
- ASSUME DS:DATA, CS:CODE
- PUSH DS
- XOR AX, AX
- PUSH AX
- MOV AX, DATA
- MOV DS, AX
- MOV SI, OFFSET ARRAY
- MOV CX, ARRAY_LEN
- CHECK :
- MOV AL, [SI]
- CALL CHECK_NUMBER
- CMP AH, 02H
- JL NPOS_INCREMENT
- JE NNEG_INCREMENT
- JG NZER_INCREMENT
- NPOS_INCREMENT :
- INC NPOS
- INC SI
- LOOP CHECK
- NNEG_INCREMENT :
- INC NNEG
- INC SI
- LOOP CHECK
- NZER_INCREMENT :
- INC NZER
- INC SI
- LOOP CHECK
- RET
- PROC CHECK_NUMBER
- XOR AH, AH
- CMP AL, 0
- JL NEG_FOUND
- JG POS_FOUND
- JE ZER_FOUND
- NEG_FOUND :
- MOV AH, 01H
- RET
- POS_FOUND :
- MOV AH, 02H
- RET
- ZER_FOUND :
- MOV AH, 03H
- RET
- ENDP CHECK_NUMBER
- ENDP START
- CODE ENDS
- END START
- ;16
- data segment para public 'data'
- radius dq 5.0
- height dq 4.0
- volume dq ?
- three dq 3.0
- data ends
- code segment para public 'code'
- main proc far
- assume cs:code,ds:data
- push ds
- xor ax,ax
- push ax
- mov ax, data
- mov ds,ax
- finit
- fld1
- fdiv three
- fldPi
- fmul
- fld radius
- fld radius
- fmul
- fmul
- fld height
- fmul
- fstp volume
- fwait
- ret
- main endp
- code ends
- end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement