Alp Lab 2024 - New
Alp Lab 2024 - New
COMPUTER SCIENCE
SEMESTER IV
LIST OF EXPERIMENTS
1.ADDITION.
2.SUBTRACTION
3. MULTIPLICATION
4. DIVISION
5. SQUARE OF A NUMBER.
9. ODD OR EVEN
SECTION 2
15.MOVING A STRING
16.DISPLAY OF STRINGS
18.CHECK A PASSWORD
DATE: ADDITION
(a)AIM: Write an Assembly Language program (ALP) to add two 8-bit numbers.
PROGRAM
DATA SEGMENT
NUM1 DB 00H
NUM2 DB 00H
SUM DB 00H
DATA ENDS
CODE SEGMENT
MOV DS, AX
MOV CL,00H
ADD AL, BL
MOV SUM, AL
INT 3H
CODE ENDS
END START
PROGRAM
DATA SEGMENT
NUM1 DB 00H
NUM2 DB 00H
SUM DB 00H
CARRY DB 00H
DATA ENDS
CODE SEGMENT
MOV DS, AX
MOV CL,00H
ADD AL, BL
JNC L1
INC CL
MOV CARRY, CL
INT 3H
CODE ENDS
END START
PROGRAM
DATA SEGMENT
NUM1 DW 0000H
NUM2 DW 0000H
SUM DW 0000H
CARRY DB 00H
DATA ENDS
CODE SEGMENT
MOV DS, AX
MOV CL,00H
ADD AX, BX
JNC L1
INC CL
INT 3H
CODE ENDS
END START
PROGRAM 2
DATE: SUBTRACTION
AIM: Write an Assembly Language program (ALP) to subtract two 16 bit numbers.
PROGRAM
DATA SEGMENT
NUM1 DW 0000H
NUM2 DW 0000H
DIFFERENCE DW?
BORROWDB?
DATA ENDS
CODE SEGMENT
MOV DS, AX
CLC
MOV CL,00H
SBB AX, BX
JNC L1
INC CL
MOV BORROW, CL
INT 3H
CODE ENDS
END START
PROGRAM 3
DATE: MULTIPLICATION
(a)AIM: Write an Assembly Language program (ALP) to multiply two 8-bit numbers.
PROGRAM
DATA SEGMENT
MULTIPLICAND DB 00H
MULTIPLIER DB 00H
PRODUCT DW?
DATA ENDS
CODE SEGMENT
MOV DS, AX
MUL BL
MOV PRODUCT, AX
INT 3H
CODE ENDS
END START
DATA SEGMENT
MULTIPLICAND DW 0000H
MULTIPLIER DW 0000H
PRODUCTL DW ?
PRODUCTH DW ?
DATA ENDS
CODE SEGMENT
MOV DS, AX
MUL BX
MOV PRODUCTL, AX
MOV PRODUCTH, DX
INT 3H
CODE ENDS
END START
RESULT: The program is successfully built, executed and output is verified
PROGRAM 4
DATE: DIVISION
PROGRAM
DATA SEGMENT
DIVIDEND DW 0000H
DIVISOR DB 02H
QUOT DB?
REM DB?
DATA ENDS
CODE SEGMENT
MOV DS, AX
DIV BL
MOV QUO, AL
MOV REM, AH
INT 3H
CODE ENDS
END START
PROGRAM
DATA SEGMENT
DATA1 DB 00H
SQR1 DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE. DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,DATA1
MUL AL
MOV SQR1,AX
INT 3H
CODE ENDS
END START
DATA SEGMENT
DATA1 DB 00H
RESULT DB?
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE. DS:DATA
START: MOV AX, DATA
MOV DS, AX
NEG AL
MOV RESULT, AL
INT 3H
CODE ENDS
END START
OBSERVATION
PROGRAM
DATA SEGMENT
DATA1 DB 00H
RESULT DB?
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE. DS:DATA
START: MOV AX, DATA
MOV DS, AX
AND AL,0F0H
MOV RESULT, AL
INT 3H
CODE ENDS
END START
OBSERVATION
PROGRAM
DATA SEGMENT
DATA1 DB 00H
RESULT DB?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE. DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,DATA1
MOV CL,04H
ROR AL,CL
MOV RESULT,AL
INT 3H
CODE ENDS
END START
OBSERVATION
AIM : Write an ALP to check whether a given number is odd or even. If odd then
store 01H to memory location else store 00H.
ALGORITHM
Step 1: Start
Step 5: If carry flag is reset go to step 7 to store 00H for even number else go to step 6 .
Step 8: Stop.
PROGRAM 9: ODD OR EVEN
AIM : Write an ALP to check whether a given number is odd or even. If odd then
store 01H to memory location else store 00H.
PROGRAM
DATA SEGMENT
DATA DB 00H
RESULT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE. DS:DATA
START: MOV AX,DATA
MOV DS, AX
JNC L1
INC CL
INT 3H
CODE ENDS
END START
PROGRAM
DATA SEGMENT
DATA DB 80H
RESULT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE. DS:DATA
START: MOV AX,DATA
MOV DS, AX
JNC L1
INC CL
INT 3H
CODE ENDS
END START
ALGORITHM
Step 1: Start
Step 10: Decrement count in CX and it is not equal to zero go to step 6 otherwise go to the
next step.
OBSERVATION
PROGRAM
DATA SEGMENT
COUNT DB ?
ARRAY DB ?
LARGEST DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE. DS:DATA
START: MOV AX,DATA
MOV DS, AX
MOV CH,00H
MOV CL,COUNT
DEC CL
LEA SI,ARRAY
MOV AL,[SI]
BACK: INC SI
CMP AL,[SI]
JNC L1
MOV AL,[SI]
MOV LARGEST,AL
INT 3H
CODE ENDS
END START
ALGORITHM
Step 1: Start
Step 10: Decrement count in CX and it is not equal to zero go to step 6 otherwise go to the
next step.
OBSERVATION
PROGRAM
DATA SEGMENT
COUNT DB ?
ARRAY DB ?
SMALLEST DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE. DS:DATA
START: MOV AX,DATA
MOV DS, AX
MOV CH,00H
MOV CL,COUNT
DEC CL
LEA SI,ARRAY
MOV AL,[SI]
BACK: INC SI
CMP AL,[SI]
JC L1
MOV AL,[SI]
MOV SMALLEST,AL
INT 3H
CODE ENDS
END START
ALGORITHM
Step 1: Start
Step 2: Get cycle count in BX register.
Step 3: Decrement BX
Step 10: Decrement comparison count in CX and it is not equal to zero go to step 6
otherwise go to next step.
OBSERVATION
PROGRAM
DATA SEGMENT
COUNT DW ?
ARRAY DB ?
DATA ENDS
CODE SEGMENT
MOV BX,COUNT
DEC BX
LEA SI,ARRAY
CMP AL,[SI+1]
JC L1
XCHG AL,[SI+1]
MOV [SI],AL
L1: INC SI
LOOP BACK
DEC BX
JNZ NEXT
INT 3H
CODE ENDS
END START
ALGORITHM
Step 1: Start
Step 2: Get cycle count in BX register.
Step 3: Decrement BX
Step 10: Decrement comparison count in CX and it is not equal to zero go to step 6 other
wise go to next step.
OBSERVATION
PROGRAM
DATA SEGMENT
COUNT DW ?
ARRAY DB ?
DATA ENDS
CODE SEGMENT
MOV BX,COUNT
DEC BX
LEA SI,ARRAY
CMP AL,[SI+1]
JC L1
XCHG AL,[SI+1]
MOV [SI],AL
L1: INC SI
LOOP BACK
DEC BX
JNZ NEXT
INT 3H
CODE ENDS
END START
Step 1: Start
Step 3: Copy AX to DS
Step 4: Copy AX to ES
DATASEGMENT
ARRAY1 DB ‘CAS PUTHUPPALLY ‘
ARRAY 2 DB ?
DATA ENDS
CODESEGMENT
ASSUME CS: CODE, DS:DATA
MOV DS, AX
MOV ES, AX
MOV CX,16
CLD
REP MOVSB
INT 3H
CODE ENDS
END START
DATA SEGMENT
MSG DB 0AH,0DH “HELLO WORLD$”
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
INT 10H
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
DATA SEGMENT
ARRAY DB 00H
DATA ENDS
CODE SEGMENT
MOV DS, AX
INT 10H
MOV AH,09H
INT 21H
MOV CL,00H
LEA SI,ARRAY
AGAIN:MOV AH,01H
INT 21H
MOV[SI],AL
INC SI
INC CL
CMP AL,0DH
JNZ AGAIN
MOV DH,’$’
MOV [SI],DH
MOV AH,09H
INT 21H
MOV AH,09H
INT 21H
MOV AH,09H
INT 21H
DEC CL
MOV AL,CL
MOV AH,00H
MOV BL,0AH
DIV BL
MOV BL,AH
MOV BH,AL
MOV DL,BH
ADD DL,30H
MOV AH,02H
INT 21H
MOV DL,BL
ADD DL,30H
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
OBSERVATION
DATA SEGMENT
ARRAY DB 00H
DATA ENDS
CODE SEGMENT
MOV DS, AX
MOV AX,0003H //CLEAR SCREEN
INT 10H
MOV AH,09H
INT 21H
MOV CL,00H
LEA SI,ARRAY
AGAIN:MOV AH,01H
INT 21H
MOV[SI],AL
INC SI
INC CL
CMP AL,0DH
JNZ AGAIN
MOV DH,’$’
MOV [SI], DH
MOV AH,09H
INT 21H
MOV AH,09H
INT 21H
MOV AH,09H
INT 21H
DEC SI
DEC SI
DEC CL
MOV AH,02H
INT 21H
DEC SI
DEC CL
JNZ BACK
MOV AH,4CH
INT 21H
CODE ENDS
END START
DATA SEGMENT
A DB 00H
B DB 00H
A1 DW 0000H
DATAENDS
CODE SEGMENT
START:MOV AX,DATA
MOV DS,AX
MOV AL,A
MOV AH,00H
MOV BL,06H
CALL MULT
MOV DX,AX
MOV AL,B
MOV AH,00H
MOV BL,04H
CALL MULT
ADD AX,DX
MOV A1,AX
INT3H
MUL BL
RET
MULT ENDP
CODE ENDS
END START
PROGRAM 16: ARITHMETIC OPERATION USING PROCEDURE
ALGORITHM
Step 1: Start
Step 4: Copy AL to CL
Step 7: Copy CL to AL
PROCEDURE 1
Step 1: Start
Step 2: Add AL to BL
Step 4: Stop
PROCEDURE 2
Step 1: Start
Step 4: Stop
PROCEDURE 3
Step 1: Start
Step 4: Stop
OBSERVATION
AIM : Write an ALP to find the sum,difference and product of two numbers using
procedures.
PROGRAM
.MODEL SMALL
.STACK 100H
.DATA
DATA1 DB 05H
DATA2 DB 02H
SUM DB ?
DIFFERENCE DB ?
PRODUCT DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS, AX
MOV AL,DATA1
MOV BL,DATA2
MOV CL,AL
CALL P1
MOV SUM,AL
MOV AL,CL
CALL P2
MOV DIFFERENCS.AL
MOV AL,CL
CALL P3
MOV PRODUCT,AL
INT 21H
MAIN ENDP
P1 PROC NEAR
ADD AL,BL
RET
P1 ENDP
P2 PROC NEAR
SUB AL,BL
RET
P2 ENDP
P3 PROC NEAR
MUL BL
RET
P3 ENDP
END MAIN
PROGRAM
PROGRAM
DATA SEGMENT
COUNT DB 00H
ARRAY DB 00H
DATA ENDS
CODE SEGMENT
MOV BL,00H
MOV CH,00H
MOV CL,COUNT
MOV AL,00H
LEA SI,ARRAY
BACK:ADD AL,[SI]
JNC L1
INC BL
L1: INC SI
LOOP BACK
MOV [SI],AL
INC SI
MOV [SI],BL
INT 3H
CODE ENDS
END START