Code

1) Program to find average of 3 numbers:

.MODEL SMALL
.DATA
    NUM1 DB 10
    NUM2 DB 20
    NUM3 DB 30
    AVG DB ?
.CODE
MAIN PROC
    MOV AX, @DATA
    MOV DS, AX
   
    MOV AL, NUM1
    ADD AL, NUM2
    ADD AL, NUM3
    MOV BL, 3
    DIV BL   ; AX = AX / 3
   
    MOV AVG, AL
   
    MOV AH, 4CH
    INT 21H
MAIN ENDP
END MAIN

2) Program to add 2 arrays:

.MODEL SMALL
.DATA
    ARRAY1 DB 10, 20, 30
    ARRAY2 DB 40, 50, 60
    RESULT DB 6 DUP(?)
.CODE
MAIN PROC
    MOV AX, @DATA
    MOV DS, AX
   
    XOR SI, SI  ; Initialize source index for array1
    XOR DI, DI  ; Initialize destination index for result array
   
ADD_LOOP:
    MOV AL, ARRAY1[SI] ; Load element from array1
    ADD AL, ARRAY2[SI] ; Add corresponding element from array2
    MOV RESULT[DI], AL ; Store the result in result array
    INC SI
    INC SI
    INC DI
    LOOP ADD_LOOP
   
    MOV AH, 4CH
    INT 21H
MAIN ENDP
END MAIN

3) Program to compare two numbers:

.MODEL SMALL
.DATA
    NUM1 DB 10
    NUM2 DB 20
    MSG1 DB “Number is greater$”
    MSG2 DB “Number is smaller$”
    MSG3 DB “Numbers are the same$”
.CODE
MAIN PROC
    MOV AX, @DATA
    MOV DS, AX
   
    MOV AL, NUM1
    CMP AL, NUM2
    JA GREATER
    JB SMALLER
    JMP EQUAL
   
GREATER:
    MOV AH, 09H
    LEA DX, MSG1
    INT 21H
    JMP EXIT
   
SMALLER:
    MOV AH, 09H
    LEA DX, MSG2
    INT 21H
    JMP EXIT
   
EQUAL:
    MOV AH, 09H
    LEA DX, MSG3
    INT 21H
   
EXIT:
    MOV AH, 4CH
    INT 21H
MAIN ENDP
END MAIN

4) Program to move array of 5 numbers:

.MODEL SMALL
.DATA
    ARRAY1 DB 1, 2, 3, 4, 5
    ARRAY2 DB 5 DUP(?)
.CODE
MAIN PROC
    MOV AX, @DATA
    MOV DS, AX
   
    MOV SI, OFFSET ARRAY1
    MOV DI, OFFSET ARRAY2
    MOV CX, 5
   
COPY_LOOP:
    MOV AL, [SI]
    MOV [DI], AL
    INC SI
    INC DI
    LOOP COPY_LOOP
   
    MOV AH, 4CH
    INT 21H
MAIN ENDP
END MAIN

5) Program to find the sum of even numbers:

.MODEL SMALL
.DATA
    ARRAY DB 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    SUM DB ?
.CODE
MAIN PROC
    MOV AX, @DATA
    MOV DS, AX
   
    MOV SI, OFFSET ARRAY
    MOV CX, 10
    XOR AL, AL ; Clear AL to store sum
   
SUM_LOOP:
    MOV BL, [SI] ; Load the number into BL
    AND BL, 00000001B ; Check if the number is even
    JNZ NOT_EVEN ; Jump if not even
    ADD AL, [SI] ; Add even number to sum
NOT_EVEN:
    INC SI
    LOOP SUM_LOOP
   
    MOV SUM, AL
   
    MOV AH, 4CH
    INT 21H
MAIN ENDP
END MAIN

6) Program to count the number of add even numbers:

.MODEL SMALL
.DATA
    ARRAY DB 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    COUNT DB ?
.CODE
MAIN PROC
    MOV AX, @DATA
    MOV DS, AX
   
    MOV SI, OFFSET ARRAY
    MOV CX, 10
    XOR BL, BL ; Clear BL to store count
   
COUNT_LOOP:
    MOV AL, [SI] ; Load the number into AL
    AND AL, 00000001B ; Check if the number is even
    JNZ NOT_EVEN ; Jump if not even
    INC BL ; Increment count if even
NOT_EVEN:
    INC SI
    LOOP COUNT_LOOP
   
    MOV COUNT, BL
   
    MOV AH, 4CH
    INT 21H
MAIN ENDP
END MAIN

7) Program to find the minimum number located in a memory at 70250h:

.MODEL SMALL
.DATA
    MIN_VALUE DB ?
.CODE
MAIN PROC
    MOV AX, @DATA
    MOV DS, AX
   
    MOV CX, 5 ; Number of elements in the array
    MOV SI, 70250H ; Starting memory location
   
    MOV AL, [SI] ; Initialize minimum value
    MOV MIN_VALUE, AL
   
FIND_MIN:
    INC SI ; Move to the next element
    MOV AL, [SI] ; Load the next element
    CMP AL, MIN_VALUE ; Compare with minimum value
    JNC NOT_LESS ; Jump if not less
    MOV MIN_VALUE, AL ; Update minimum value
NOT_LESS:
    LOOP FIND_MIN
   
    MOV AH, 4CH
    INT 21H
MAIN ENDP
END MAIN

Leave a comment

Design a site like this with WordPress.com
Get started