Sunteți pe pagina 1din 104

Computer Studies Department

TECHNOLOGICAL UNIVERSITY OF THE PHILIPPINES

COMPUTER STUDIES DEPARTMENT

LAB MANUAL

ASSEMBLY LANGUAGE PROGRAMMING


CC271L

(1ST SEMESTER 2019-2020)

Name
Student No.
Course
Section

1|Page
Prepared By DcVargas
Computer Studies Department

No Problem Algorithm Flowchart Code GRADE


1 ADDITION OF TWO 8-BIT
HEXADECIMAL NUMBERS

2 ADDITION OF TWO 8-BIT BCD

3 ADDITION OF TWO 16-BIT


HEXADECIMAL NUMBERS

4 ADDITION OF TWO 16-BIT BCD


NUMBERS

5 SUBTRACTION OF TWO 8-BIT


HEXADECIMAL NUMBERS

6 SUBTRACTION OF TWO 8-BIT BCD


NUMBERS

7 SUBTRACTION OF TWO 16-BIT


HEXADECIMAL NUMBERS

8 SUBTRACTION OF TWO 16-BIT


BCD NUMBERS

9 MULTIPLICATION OF TWO 8-BIT


HEXADECIMAL NUMBERS

10 MULTIPLICATION OF TWO 16-BIT


NUMBERS (HEXADECIMAL)

11 DIVISION OF 8-BIT BY 8-BIT


NUMBERS.

12 DIVISION OF 16-BIT BY 16-BIT


NUMBERS.

13 AVERAGE OF ‘N’ 8-BIT NUMBERS


(HEXADECIMAL)

14 AVERAGE OF 8-BIT NUMBERS


(BCD)

15 .ADDITION OF TWO 6-DIGIT


NUMBERS (HEXADECIMAL)

16 ADDITION OF TWO 6-DIGIT


NUMBERS (BCD)

17 TO FIND MAXIMUM AND


MINIMUM OF GIVEN NUMBERS.

2|Page
Prepared By DcVargas
Computer Studies Department

18 SORTING OF ‘N’NUMBERS

19 ADDITION OF TWO MATRICES


(HEXADECIMAL)

20 ADDITION OF TWO MATRICES


(BCD)

21 SUBTRACTION OF TWO MATRICES


(HEXADECIMAL)

22 SUBTRACTION OF TWO MATRICES


(BCD)

23 TRANSPOSE OF THE MATRIX

24 GENERATION OF PRIME
NUMBERS(HEXADECIMAL)

25 GENERATION OF PRIME NUMBERS


(BCD)

26 GENERATION OF PERFECT
DIVIDING
NUMBERS(HEXADECIMAL)

27 GENERATION OF PERFECT
DIVIDING
NUMBERS(HEXADECIMAL)

28 GENERATION OF FIBONACCI
SERIES (HEXADECIMAL)

29 GENERATION OF FIBONACCI
SERIES (BCD)

30 FACTORIAL OF A NUMBER USING


RECURSION TECHNIQUE

31 CONVERSION FROM BINARY TO


GRAY ( HEXADECIMAL )

32CONVERSION FROM GRAY CODE TO


BINARY CODE(HEXADECIMAL)

33 CONVERSION OF ARRAY OF
BINARY CODE TO GRAY CODE
(HEXADECIMAL)
34 CONVERSION OF ARRAY OF
GRAYCODE TO BINARY CODE
(HEXADECIMAL)

3|Page
Prepared By DcVargas
Computer Studies Department

35 GCD OF TWO 8-BIT


HEXADECIMAL NUMBERS

36 GCD OF TWO 8-BIT


NUMBERS(BCD).

37 REVERSE OF A BYTE

38 REVERSAL OF WORD

39REVERSAL OF AN ARRAY
40 TO DISPLAY CURRENT TIME.

41 TO DISPLAY CURRENT DATE.

4|Page
Prepared By DcVargas
Computer Studies Department

1. ADDITION OF TWO 8-BIT HEXADECIMAL NUMBERS

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER:','$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER:','$'
MESS3 DB 0AH,0DH,'SUM OF TWO 8-BIT NUMBER IS:','$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA DISP PROC NEAR
START: PUBLIC DISP
MOV AX,DATA LEA DX,MESS3
MOV DS,AX MOV AH,09H
LEA DX,MESS1 INT 21H
MOV AH,09H MOV DL,CL
INT 21H ADD DL,30H
CALL READ MOV AH,06H
MOV BL,DL INT 21H
LEA DX,MESS2 MOV CL,04H
MOV AH,09H MOV DL,BL
INT 21H SHR DL,CL
CALL READ CMP DL,0AH
MOV CL,00H JC L1
ADD BL,DL ADD DL,07H
JNC NEXT L1:ADD DL,30H
INC CL MOV AH,06H
NEXT:CALL DISP INT 21H
MOV AH,4CH AND BL,0FH
INT 21H CMP BL,0AH
JC L2
READ PROC NEAR ADD BL,07H
PUBLIC READ L2:ADD BL,30H
MOV AH,01H MOV DL,BL
INT 21H MOV AH,06H
MOV DL,AL INT 21H
MOV CL,04H RET
SUB DL,30H DISP ENDP
CMP DL,0AH CODE ENDS
JC R1 END START
SUB DL,07H
R1:SHL DL,CL OUTPUT:
MOV AH,01H ENTER FIRST NUMBER : E9
INT 21H ENTER SECOND NUMBER : FA
SUB AL,30H SUM OF TWO 8-BIT NUMBER IS :
CMP AL,0AH 1E3
JC R2
SUB AL,07H
R2:AND AL,0FH ENTER FIRST NUMBER : AB
OR DL,AL ENTER SECOND NUMBER : CD
RET SUM OF TWO 8-BIT NUMBER IS :
READ ENDP 178

5|Page
Prepared By DcVargas
Computer Studies Department

2. ADDITION OF TWO 8-BIT BCD

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER:','$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER:','$'
MESS3 DB 0AH,0DH,'SUM OF TWO 8-BIT NUMBER IS:','$'
DATA ENDS

CODE SEGMENT READ ENDP


ASSUME CS:CODE,DS:DATA
START: DISP PROC NEAR
MOV AX,DATA PUBLIC DISP
MOV DS,AX LEA DX,MESS3
LEA DX,MESS1 MOV AH,09H
MOV AH,09H INT 21H
INT 21H MOV DL,CL
CALL READ ADD DL,30H
MOV BL,DL MOV AH,06H
LEA DX,MESS2 INT 21H
MOV AH,09H MOV CL,04H
INT 21H MOV DL,BL
CALL READ SHR DL,CL
MOV CL,00H CMP DL,0AH
MOV AL,BL JC L1
ADD AL,DL ADD DL,07H
DAA L1:ADD DL,30H
JNC NEXT MOV AH,06H
INC CL INT 21H
NEXT:MOV BL,AL AND BL,0FH
CALL DISP CMP BL,0AH
MOV AH,4CH JC L2
INT 21H ADD BL,07H
L2:ADD BL,30H
READ PROC NEAR MOV DL,BL
PUBLIC READ MOV AH,06H
INT 21H
MOV AH,01H RET
INT 21H
MOV DL,AL DISP ENDP
MOV CL,04H CODE ENDS
SUB DL,30H END START
CMP DL,0AH OUTPUT:
JC R1 ENTER FIRST NUMBER : 97
SUB DL,07H ENTER SECOND NUMBER : 56
R1:SHL DL,CL SUM OF TWO 8-BIT NUMBER IS : 153
MOV AH,01H
INT 21H
SUB AL,30H ENTER FIRST NUMBER : 82
CMP AL,0AH ENTER SECOND NUMBER : 19
JC R2
SUM OF TWO 8-BIT NUMBER IS :
SUB AL,07H
R2:AND AL,0FH 101
OR DL,AL
RET

6|Page
Prepared By DcVargas
Computer Studies Department

3. ADDITION OF TWO 16-BIT HEXADECIMAL NUMBERS

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER:','$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER:','$'
MESS3 DB 0AH,0DH,'SUM OF TWO 16-BIT NUMBER IS:','$'
DATA ENDS

CODE SEGMENT READ ENDP


ASSUME CS:CODE,DS:DATA DISP PROC NEAR
START: PUBLIC DISP
MOV AX,DATA LEA DX,MESS3
MOV DS,AX MOV AH,09H
LEA DX,MESS1 INT 21H
MOV AH,09H MOV DL,CL
INT 21H ADD DL,30H
CALL READ MOV AH,06H
MOV BX,DX INT 21H
LEA DX,MESS2 MOV CH,02H
MOV AH,09H L3:MOV CL,04H
INT 21H MOV DL,BH
CALL READ SHR DL,CL
MOV CL,00H CMP DL,0AH
ADD BX,DX JC L1
JNC NEXT ADD DL,07H
INC CL L1:ADD DL,30H
NEXT:CALL DISP MOV AH,06H
MOV AH,4CH INT 21H
INT 21H AND BH,0FH
READ PROC NEAR CMP BH,0AH
PUBLIC READ JC L2
MOV CH,02H ADD BH,07H
R3:MOV AH,01H L2:ADD BH,30H
INT 21H MOV DL,BH
MOV CL,04H MOV AH,06H
MOV DL,AL INT 21H
SUB DL,30H DEC CH
CMP DL,0AH JZ L4
JC R1 MOV BH,BL
SUB DL,07H JMP L3
R1:SHL DL,CL L4:RET
MOV AH,01H DISP ENDP
INT 21H CODE ENDS
SUB AL,30H END START
CMP AL,0AH OUTPUT:
JC R2 ENTER FIRST NUMBER : 2345
SUB AL,07H ENTER SECOND NUMBER : 5646
AND AL,0FH SUM OF TWO 16-BIT NUMBER IS :
R2:OR DL,AL 0798B
DEC CH
JZ R4 ENTER FIRST NUMBER : FFFF
MOV DH,DL ENTER SECOND NUMBER : AAAA
JMP R3 SUM OF TWO 16-BIT NUMBER IS :
R4:RET 1AAA9

7|Page
Prepared By DcVargas
Computer Studies Department

4. ADDITION OF TWO 16-BIT BCD NUMBERS

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER:','$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER:','$'
MESS3 DB 0AH,0DH,'SUM OF TWO 16-BIT NUMBER IS:','$'
DATA ENDS

CODE SEGMENT JZ R4
ASSUME CS:CODE,DS:DATA MOV DH,DL
START: JMP R3
MOV AX,DATA R4:RET
MOV DS,AX READ ENDP
LEA DX,MESS1 DISP PROC NEAR
MOV AH,09H PUBLIC DISP
INT 21H
CALL READ LEA DX,MESS3
MOV BX,DX MOV AH,09H
LEA DX,MESS2 INT 21H
MOV AH,09H MOV DL,CL
INT 21H ADD DL,30H
CALL READ MOV AH,06H
MOV CL,00H INT 21H
MOV AL,BL MOV CH,02H
ADD AL,DL L3:MOV CL,04H
DAA MOV DL,BH
MOV BL,AL SHR DL,CL
MOV AL,BH CMP DL,0AH
ADC AL,DH JC L1
DAA ADD DL,07H
JNC NEXT L1:ADD DL,30H
INC CL MOV AH,06H
NEXT:MOV BH,AL INT 21H
CALL DISP AND BH,0FH
MOV AH,4CH CMP BH,0AH
INT 21H JC L2
READ PROC NEAR ADD BH,07H
PUBLIC READ L2:ADD BH,30H
MOV CH,02H MOV DL,BH
R3:MOV AH,01H MOV AH,06H
INT 21H INT 21H
MOV CL,04H DEC CH
MOV DL,AL JZ L4
SUB DL,30H MOV BH,BL
CMP DL,0AH JMP L3
JC R1 L4:RET
SUB DL,07H DISP ENDP
R1:SHL DL,CL CODE ENDS
MOV AH,01H END START
INT 21H OUTPUT:
SUB AL,30H ENTER FIRST NUMBER : 6987
CMP AL,0AH ENTER SECOND NUMBER : 3991
JC R2 SUM OF TWO 16-BIT NUMBER IS : 10978
SUB AL,07H
AND AL,0FH ENTER FIRST NUMBER : 9999
R2:OR DL,AL ENTER SECOND NUMBER : 8888
DEC CH SUM OF TWO 16-BIT NUMBER IS : 18887

8|Page
Prepared By DcVargas
Computer Studies Department

5. SUBTRACTION OF TWO 8-BIT HEXADECIMAL NUMBERS

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER:','$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER:','$'
MESS3 DB 0AH,0DH,'SUBTRACTION OF TWO 8-BIT NUMBER IS:','$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

START:
MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV CL,00H
SUB BL,DL
JNC NEXT
NEG BL
MOV CL,'-'
NEXT:CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2:AND AL,0FH
OR DL,AL

9|Page
Prepared By DcVargas
Computer Studies Department

RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP

LEA DX,MESS3
MOV AH,09H
INT 21H
MOV DL,CL
ADD DL,30H
MOV AH,06H
INT 21H
MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET

DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER FIRST NUMBER : 55


ENTER SECOND NUMBER : AA
SUBTRACTION OF TWO 8-BIT NUMBER IS : -55

ENTER FIRST NUMBER : FA


ENTER SECOND NUMBER : 93
SUBTRACTION OF TWO 8-BIT NUMBER IS : -67

10 | P a g e
Prepared By DcVargas
Computer Studies Department

6. SUBTRACTION OF TWO 8-BIT BCD NUMBERS

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NO:','$'
MESS2 DB 0AH,0DH,'ENTER SECOND NO:','$'
MESS3 DB 0AH,0DH,'SUBTRACTION OF TWO 8-BIT NO IS:','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV CL,00H
MOV AL,BL
SUB AL,DL
DAS
JNC NEXT
MOV CH,99H
SUB CH,AL
MOV AL,CH
ADD AL,01H
DAA
MOV CL,'-'
NEXT:
MOV BL,AL
CALL DISP
MOV AH,4CH
INT 21H
READ PROC NEAR
PUBLIC READ
MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H

11 | P a g e
Prepared By DcVargas
Computer Studies Department

CMP AL,0AH
JC R2
SUB AL,07H
R2:AND AL,0FH
OR DL,AL
RET
READ ENDP
DISP PROC NEAR
PUBLIC DISP
LEA DX,MESS3
MOV AH,09H
INT 21H
MOV DL,CL
ADD DL,30H
MOV AH,06H
INT 21H
MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET

DISP ENDP
CODE ENDS
END START
OUTPUT:
ENTER FIRST NUMBER : 98
ENTER SECOND NUMBER : 54
SUBTRACTION OF TWO 8-BIT NUMBER IS : 044

ENTER FIRST NUMBER : 87


ENTER SECOND NUMBER : 98
SUBTRACTION OF TWO 8-BIT NUMBER IS : -11

12 | P a g e
Prepared By DcVargas
Computer Studies Department

7. SUBTRACTION OF TWO 16-BIT HEXADECIMAL NUMBERS.

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER :''$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER :''$'
MESS3 DB 0AH,0DH,'SUBTRACTION IS :''$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BX,DX
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV CL,' '
SUB BX,DX
MOV CL,00H
JNC NEXT
INC CL
MOV CL,'-'
NEG BX
NEXT: CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV CH,02H
R3: MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH

13 | P a g e
Prepared By DcVargas
Computer Studies Department

OR DL,AL
DEC CH
JZ R4
MOV DH,DL
JMP R3
R4:RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA DX,MESS3
MOV AH,09H
INT 21H
MOV DL,CL
MOV AH,06H
INT 21H
MOV CH,02H
L3:MOV CL,04H
MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC L2
ADD BH,07H
L2:ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
DEC CH
JZ L4
MOV BH,BL
JMP L3
L4:RET

DISP ENDP
CODE ENDS
END START
OUTPUT:
ENTER FIRST NUMBER : DE32
ENTER SECOND NUMBER : 97CA
SUBTRACTION OF TWO 8-BIT NUMBER IS : 04668

ENTER FIRST NUMBER : 698F


ENTER SECOND NUMBER : B2C6
SUBTRACTION OF TWO 8-BIT NUMBER IS : -4937

14 | P a g e
Prepared By DcVargas
Computer Studies Department

8. SUBTRACTION OF TWO 16-BIT BCD NUMBERS

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NO:','$'
MESS2 DB 0AH,0DH,'ENTER SECOND NO:','$'
MESS3 DB 0AH,0DH,'SUBTRACTION OF TWO 16-BIT NO IS:','$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA


MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BX,DX
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV AX,BX
MOV CL,' '
MOV AL,BL
SUB AL,DL
DAS
MOV BL,AL
MOV AL,BH
SBB AL,DH
DAS
MOV BH,AL
JNC NEXT
MOV AX,0000H
SUB AL,BL
ADD DL,01H
DAS
MOV BL,AL
MOV AL,AH
SBB AL,BH
DAS
MOV BH,AL
MOV CL,'-'
NEXT: CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ

15 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV CH,02H CMP


R3: MOV AH,01H DL,0AH
INT 21H JC L1
MOV CL,04H ADD
MOV DL,AL DL,07H
SUB DL,30H L1:ADD
CMP DL,0AH DL,30H
JC R1 MOV
SUB DL,07H AH,06H
R1:SHL DL,CL INT 21H
MOV AH,01H AND BH,0FH
INT 21H CMP BH,0AH
SUB AL,30H JC L2
CMP AL,0AH ADD BH,07H
JC R2 L2:ADD BH,30H
SUB AL,07H MOV DL,BH
R2: AND AL,0FH MOV AH,06H
OR DL,AL INT 21H
DEC CH DEC CH
JZ R4 JZ L4
MOV DH,DL MOV BH,BL
JMP R3 JMP L3
R4:RET L4:RET

READ ENDP DISP ENDP


CODE ENDS
DISP PROC NEAR END START
PUBLIC DISP
LEA
DX,MESS3
MOV
AH,09H
INT 21H
MOV DL,CL OUTPUT:
MOV
AH,06H ENTER FIRST NUMBER : 9873
INT 21H ENTER SECOND NUMBER : 8642
MOV SUBTRACTION OF TWO 8-BIT
CH,02H NUMBER IS : 01231
L3:MOV
CL,04H ENTER FIRST NUMBER : 2431
MOV ENTER SECOND NUMBER : 9247
DL,BH SUBTRACTION OF TWO 8-BIT
SHR DL,CL NUMBER IS : -6816

16 | P a g e
Prepared By DcVargas
Computer Studies Department

9. MULTIPLICATION OF TWO 8-BIT HEXADECIMAL NUMBERS.

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE FIRST NUMBER:','$'
MESS2 DB 0AH,0DH,'ENTER THE SECOND NUMBER:','$'
MESS3 DB 0AH,0DH,'PRODUCT IS:','$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BX,DX
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV AX,BX
MUL DL
MOV BX,AX
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2:AND AL,0FH
OR DL,AL

17 | P a g e
Prepared By DcVargas
Computer Studies Department

RET
READ ENDP
DISP PROC NEAR
PUBLIC DISP

LEA DX,MESS3
MOV AH,09H
INT 21H
MOV CH,02H
L3:MOV CL,04H
MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC L2
ADD BH,07H
L2:ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
DEC CH
JZ L4
MOV BH,BL
JMP L3
L4:RET

DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER FIRST NUMBER : 01


ENTER SECOND NUMBER : 01
PRODUCT IS : 0001

ENTER FIRST NUMBER : 0A


ENTER SECOND NUMBER : 0A
PRODUCT IS : 0064

18 | P a g e
Prepared By DcVargas
Computer Studies Department

10.MULTIPLICATION OF TWO 16-BIT NUMBERS (HEXADECIMAL)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER :''$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER :''$'
MESS3 DB 0AH,0DH,'PRODUCT IS :''$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA


MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BX,DX
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV AX,BX
MUL DX
MOV BX,DX
MOV SI,AX
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV CH,02H
R3: MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL

19 | P a g e
Prepared By DcVargas
Computer Studies Department

DEC CH
JZ R4
MOV DH,DL
JMP R3
R4: RET

READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA DX,MESS3
MOV AH,09H
INT 21H
MOV CH,04H
MOV CL,04H
L3: MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1: ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC L2
ADD BH,07H
L2:ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
DEC CH
JZ L4
MOV BH,BL
CMP CH,03H
JNZ L5
MOV DX,SI
L5:MOV BL,DH
MOV DH,DL
JMP L3
L4:RET

DISP ENDP
CODE ENDS
END START

OUTPUT

ENTER FIRST NUMBER : F4D9


ENTER SECOND NUMBER : 6A52
PRODUCT OF TWO NUMBERS : 65B04782

ENTER FIRST NUMBER : 23CD


ENTER SECOND NUMBER : 542E
PRODUCT OF TWO NUMBERS : 0BC5B2D6

20 | P a g e
Prepared By DcVargas
Computer Studies Department

11. DIVISION OF 8-BIT BY 8-BIT NUMBERS.

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE DIVIDEND:','$'
MESS2 DB 0AH,0DH,'ENTER THE DIVISOR:','$'
MESS3 DB 0AH,0DH,'DIVISION IS :','$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

START:
MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV AH,00H
MOV AL,BL
DIV DL
MOV BH,AL
MOV AL,00H
DIV DL
MOV BL,AL
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ

MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2

21 | P a g e
Prepared By DcVargas
Computer Studies Department

SUB AL,07H
R2:AND AL,0FH
OR DL,AL
RET

READ ENDP

DISP PROC NEAR


PUBLIC DISP

LEA DX,MESS3
MOV AH,09H
INT 21H
MOV CH,02H
LP1:MOV CL,04H
MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC L2
ADD BH,07H
L2:ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
DEC CH
JZ NXT
MOV DL,'.'
MOV AH,06H
INT 21H
MOV BH,BL
JMP LP1
NXT:RET

DISP ENDP
CODE ENDS
END START
OUTPUT:
ENTER THE DIVIDEND : D1
ENTER THE DIVISOR : B2
DIVISION : 01.00
ENTER THE DIVIDEND : A2
ENTER THE DIVISOR : 13
DIVISION : 08.00

22 | P a g e
Prepared By DcVargas
Computer Studies Department

12. DIVISION OF 16-BIT BY 16-BIT NUMBERS.

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE DIVIDEND:','$'
MESS2 DB 0AH,0DH,'ENTER THE DIVISOR:','$'
MESS3 DB 0AH,0DH,'DIVISION IS :','$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

START:
MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BX,DX
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV SI,DX
MOV DX,0000H
MOV AX,BX
DIV SI
MOV BX,AX
MOV AX,0000H
DIV SI
MOV SI,AX
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ

MOV CH,02H
R3:MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H

23 | P a g e
Prepared By DcVargas
Computer Studies Department

CMP AL,0AH
JC R2
SUB AL,07H
AND AL,0FH
R2:OR DL,AL
DEC CH
JZ R4
MOV DH,DL
JMP R3
R4:RET

READ ENDP

DISP PROC NEAR


PUBLIC DISP

LEA DX,MESS3
MOV AH,09H
INT 21H
MOV CH,02H
MOV CL,04H
MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC L2
ADD BH,07H
L2:ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
BACK:MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L3
ADD DL,07H
L3:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L4
ADD BL,07H
L4:ADD BL,30H
MOV DL,BL

24 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV AH,06H
INT 21H
DEC CH
JZ NXT
MOV DL,'.'
MOV AH,06H
INT 21H
MOV BX,SI
MOV BL,BH
JMP BACK
NXT:RET

DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER THE DIVIDEND : 6543


ENTER THE DIVISOR : 1234
DIVISION : 0005.90

ENTER THE DIVIDEND : FFFF


ENTER THE DIVISOR : CCCC
DIVISION : 0001.40

25 | P a g e
Prepared By DcVargas
Computer Studies Department

13. AVERAGE OF ‘N’ 8-BIT NUMBERS (HEXADECIMAL)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE LIMIT: ''$'
MESS2 DB 0AH,0DH,'ENTER THE NUMBER:','$'
MESS3 DB 0AH,0DH,'AVERAGE IS : ', '$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START :MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
MOV BH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
MOV dh,00h
BACK: DEC CH
MOV DL,','
MOV AH,06H
INT 21H
JZ NEXT
CALL READ
ADD BL,DL
JNC LP1
INC DH
LP1:JMP BACK
NEXT:MOV AL,BL
MOV AH,DH
DIV BH
MOV BL,AL
MOV AL,00H
DIV BH
MOV BH,AL
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H

26 | P a g e
Prepared By DcVargas
Computer Studies Department

R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA DX,MESS3
MOV AH,09H
INT 21H
MOV CH,02H
LP2: MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1: ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2: ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
DEC CH
JZ NXT
MOV DL,'.'
MOV AH,06H
INT 21H
MOV BL,BH
JMP LP2
NXT:RET

DISP ENDP
CODE ENDS
END START

OUPTUT:
ENTER THE LIMIT: 05
ENTER THE NUMBERS: 34,65,24,87,45
THE AVERAGE IS : 4E.99

27 | P a g e
Prepared By DcVargas
Computer Studies Department

14. AVERAGE OF 8-BIT NUMBERS (BCD)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE LIMIT: ''$'
MESS2 DB 0AH,0DH,'ENTER THE NUMBER:','$'
MESS3 DB 0AH,0DH,'AVERAGE IS : ', '$'
QUO DB 00H

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START :MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
MOV DH,CH
MOV BH,00H
N1:MOV AL,CH
SUB AL,01H
DAS
MOV CH,AL
JZ N2
MOV DL,','
MOV AH,06H
INT 21H
CALL READ
MOV AL,BL
ADD AL,DL
DAA
MOV BL,AL
JNC N3
MOV AL,BH
ADD AL,01H
DAA
MOV BH,AL
N3:JMP N1
N2:MOV CH,02H
MOV DL,DH
MOV DH,00H
MOV CL,00H
N4: MOV AX,BX

28 | P a g e
Prepared By DcVargas
Computer Studies Department

SUB AL,DL PUBLIC DISP


DAS
MOV BL,AL LEA DX,MESS3
MOV AL,BH MOV AH,09H
SBB AL,00H INT 21H
DAS MOV CH,02H
MOV BH,AL LOP:MOV CL,04H
MOV AL,CL MOV DL,BL
ADD AL,01H SHR DL,CL
DAA ADD DL,30H
MOV CL,AL MOV AH,06H
CMP BX,DX INT 21H
JAE N4 AND BL,0FH
DEC CH ADD BL,30H
JZ N5 MOV DL,BL
MOV QUO,CL MOV AH,06H
MOV CL,00H INT 21H
MOV BH,BL DEC CH
JMP N4 JZ RT
N5: MOV BL,QUO CMP CH,01H
MOV BH,CL JNZ L3
CALL DISP MOV DL,'.'
MOV AH,4CH MOV AH,06H
INT 21H INT 21H
READ PROC NEAR L3:MOV BL,BH
PUBLIC READ JMP LOP
RT:RET
MOV AH,01H
INT 21H DISP ENDP
MOV CL,04H
SHL AL,CL CODE ENDS
MOV DL,AL END START
MOV AH,01H
INT 21H OUPTUT:
AND AL,0FH
OR DL,AL ENTER THE LIMIT: 05
RET ENTER THE NUMBERS:
34,45,56,67,78
READ ENDP THE AVERAGE IS : 56

DISP PROC NEAR

29 | P a g e
Prepared By DcVargas
Computer Studies Department

15.ADDITION OF TWO 6-DIGIT NUMBERS (HEXADECIMAL)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE 1ST NUMBER: ''$'
MESS2 DB 0AH,0DH,'ENTER THE 2ND NUMBER:','$'
MESS3 DB 0AH,0DH,'SUM OF TWO 6-DIGIT NUMBER IS : ', '$'
QUO DB 00H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START :MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV SI,DX
MOV BL,BH
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV CL,00H
ADD SI,DX
ADC BL,BH
JNC NEXT
INC CL
NEXT: CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV CH,03H
X1:MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2:AND AL,0FH
OR DL,AL
DEC CH
JZ X2
CMP CH,02H
JNZ R3

30 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV BH,DL
JMP X1
R3:MOV DH,DL
JMP X1
X2:RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA DX,MESS3
MOV AH,09H
INT 21H
MOV DL,CL
ADD DL,30H
MOV AH,06H
INT 21H
MOV CH,03H
LP1:MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
DEC CH
JZ LAST
CMP CH,02H
JNZ L3
MOV DX,SI
L3: MOV BL,DH
MOV DH,DL
JMP LP1
LAST :RET

DISP ENDP
CODE ENDS
END START
OUTPUT:
ENTER FIRST NUMBER: 23ABCF
ENTER FIRST NUMBER:F45C24
SUM OF TWO NUMBERS:11807F3

ENTER FIRST NUMBER: 111111


ENTER FIRST NUMBER:222222
SUM OF TWO NUMBERS:0333333

31 | P a g e
Prepared By DcVargas
Computer Studies Department

16.ADDITION OF TWO 6-DIGIT NUMBERS (BCD)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE 1ST NUMBER: ''$'
MESS2 DB 0AH,0DH,'ENTER THE 2ND NUMBER:','$'
MESS3 DB 0AH,0DH,'SUM OF TWO 6-DIGIT NUMBER IS : ', '$'
QUO DB 00H

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START :MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV SI,DX
MOV BH,BL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV CL,00H
ADD AL,DL
DAA
MOV DL,AL
MOV AL,AH
ADC BH,BL
MOV DH,DL
MOV SI,DX
ADC BH,BL
MOV AL,BH
DAA
MOV BH,AL
JNC NEX
INC CL
NEXT: CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV CH,03H
X1:MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
R1:SHL DL,CL
MOV AH,01H
INT 21H
R2:AND AL,0FH
OR DL,AL

32 | P a g e
Prepared By DcVargas
Computer Studies Department

DEC CH
JZ X2
CMP CH,01H
JZ R3
R3:MOV DH,DL
JMP X1
X2:RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP

LEA DX,MESS3
MOV AH,09H
INT 21H
MOV DL,CL
ADD DL,30H
MOV AH,06H
INT 21H
MOV CH,03H
LP1:MOV CL,04H
MOV DL,BH
SHR DL,CL
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
DEC CH
JZ LAST
CMP CH,02H
JNZ L3
MOV DX,SI
L3: MOV BH,DH
MOV DH,DL
JMP LP1
LAST :RET

DISP ENDP
CODE ENDS
END START

OUTPUT:
ENTER FIRST NUMBER: 234567
ENTER FIRST NUMBER:954132
SUM OF TWO NUMBERS:1188699

ENTER FIRST NUMBER: 111111


ENTER FIRST NUMBER:222222
SUM OF TWO NUMBERS:0333333

33 | P a g e
Prepared By DcVargas
Computer Studies Department

17.TO FIND MAXIMUM AND MINIMUM OF GIVEN NUMBERS.

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER LIMIT :''$'
MESS2 DB 0AH,0DH,'ENTER NUMBERS :''$'
MESS3 DB 0AH,0DH,'MAXIMUM IS :''$'
MESS4 DB 0AH,0DH,'MINIMUM IS :''$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

START:
MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BH,DL
MOV BL,DL
L1:DEC CH
JZ L2
MOV DL,','
MOV AH,06H
INT 21H
CALL READ
MOV DH,DL
CMP BH,DL
JAE L3
XCHG BH,DL
L3:CMP BL,DH
JBE L4
XCHG BL,DH
L4:JMP L1
L2:LEA DX,MESS3
MOV AH,09H
INT 21H
CALL DISP
LEA DX,MESS4
MOV AH,09H
INT 21H
MOV BH,BL
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ

34 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
AND AL,0FH
R2:OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
MOV CL,04H
MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC N1
ADD DL,07H
N1:ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC N2
ADD BH,07H
N2:ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
RET

DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER LIMIT : 05
ENTER NUMBERS : 22, 78, 96, 30, 12
MAXIMUM IS : 96
MINIMUM IS : 12

ENTER LIMIT : 07
ENTER NUMBERS : 32,12,F4,09,67,F5,8D
MAXIMUM IS : F5
MINIMUM IS : 09

35 | P a g e
Prepared By DcVargas
Computer Studies Department

18. SORTING OF ‘N’NUMBERS

DATA SEGMENT
M1 DB 0AH,0DH,'ENTER THE LIMIT:' , '$'
M2 DB 0AH,0DH,'THE NUMBERS IS:' , '$'
M3 DB 0AH,0DH,'THE SORTED NUMBERS ARE :' , '$'
ARRAY DB 20 DUP(0)
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA

START : MOV AX,DATA


MOV DS,AX
LEA DX,M1
MOV AH,09H
INT 21H
CALL READ
MOV BL,CH
MOV BH,CH
MOV DI,BX
LEA DX,M2
MOV AH,09H
INT 21H
LEA SI ,ARRAY
L1: CALL READ
MOV [SI],CH
INC SI
DEC BL
JNZ L1
LEA DX,M3
MOV AH,09H
INT 21H
LEA BP,ARRAY
L2: MOV BL,BH
MOV SI,BP
L4: DEC BL
JZ L3
INC SI
MOV AL,[BP]
CMP AL,[SI]
JNA L4
MOV AH,[SI]
MOV [SI],AL
MOV [BP],AH
JMP L4
L3:INC BP
DEC BH
JNZ L2
LEA SI,ARRAY
MOV BX,DI

36 | P a g e
Prepared By DcVargas
Computer Studies Department

L5:CALL DISP CMP DL,0AH


INC SI JC X1
DEC BH ADD DL,07H
JNZ L5 X1:ADD DL,30H
MOV AX,4C00H MOV AH,06H
INT 21H INT 21H
READ PROC NEAR AND BL,0FH
PUBLIC READ CMP BL,0AH
MOV AH,01H JC X2
INT 21H ADD BL,07H
SUB AL,30H X2:ADD BL,30H
CMP AL,0AH MOV DL,BL
JC R1 MOV AH,06H
SUB AL,07H INT 21H
R1:MOV CL,04H MOV DL,' '
SHL AL,CL MOV AH,06H
MOV CH,AL INT 21H
MOV AH,01H RET
INT 21H
SUB AL,30H DISP ENDP
CMP AL, 0AH CODE ENDS
JC R2 END START
SUB AL,07H
AND AL,0FH
R2:OR CH,AL OUTPUT:
MOV DL,' '
MOV AH,06H
INT 21H ENTER THE LIMIT : 05
RET THE NO IS : 65 41 37 82 04
THE SORTED NUMBERS ARE : 04
READ ENDP 37 41 65 82

DISP PROC NEAR


PUBLIC DISP ENTER THE LIMIT : 06
MOV CL,04H THE NO IS : 23 ,06,14,98,67,25
MOV BL,[SI] THE SORTED NUMBERS ARE :
MOV DL,BL 06,14,23,25,67,98
SHR DL,CL

37 | P a g e
Prepared By DcVargas
Computer Studies Department

19.ADDITION OF TWO MATRICES (HEXADECIMAL)

DATA SEGMENT

M1 DB 'ENTER THE ORDER OF FIRST MATRIX:','$'


M2 DB 0AH,0DH,0AH,'ENTER THE ORDER OF SECOND MATRIX:','$'
M3 DB 0AH,0DH,0AH,'ENTER THE ELEMENTS OF FIRST MATRIX:',0AH,0DH,'$' M4 DB
0AH,0DH,0AH,'ENTER THE ELEMENTS OF SECOND MATRIX:',0AH,0DH,'$' M5 DB
0AH,0DH,0AH,' SUM OF TWO MATRICES: ',0AH,0DH, '$'
M6 DB 0AH,0DH,0AH,' MATRICES CANNOT BE ADDED: ','$'
MAT1 DB 10 DUP(0)
MAT2 DB 10 DUP(0)
MAT3 DB 30 DUP(0)
ROW DB 00H
COL DB 00H
DATA ENDS

MESSAGE MACRO MESS


LEA DX,MESS
MOV AH,09H
INT 21H
ENDM

BSPCE MACRO ASC


MOV DL,ASC
MOV AH,06H
INT 21H
ENDM

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MESSAGE M1
CALL READO
MOV BX,DX
MOV ROW,DH
MOV COL,DL
MESSAGE M2
CALL READO
CMP BX,DX
JZ L1
MESSAGE M6
JMP L7
L1:MESSAGE M3
LEA SI,MAT1
CALL READ1
MESSAGE M4
LEA SI,MAT2
CALL READ1
MESSAGE M5

38 | P a g e
Prepared By DcVargas
Computer Studies Department

BSPCE 0AH
LEA DI,MAT1
LEA SI,MAT2
LEA BX,MAT3
MOV CH,ROW
L6:MOV CL,COL
L2:MOV DH,00H
MOV DL,[SI]
ADD DL,[DI]
JNC L5
INC DH
L5:MOV [BX],DH
INC BX
MOV [BX],DL
INC DI
INC SI
INC BX
DEC CL
JNZ L2
DEC CH
JZ L3
JMP L6
L3: CALL DISP
L7: MOV AH,4CH
INT 21H

READO PROC NEAR


PUBLIC READO
MOV AH,01H
INT 21H
MOV DH,AL
SUB DH,30H
BSPCE ' '
MOV AH,01H
INT 21H
MOV DL,AL
SUB DL,30H
RET
READO ENDP

READ1 PROC NEAR


PUBLIC READ1
BSPCE 0AH
MOV CH,ROW
N2:MOV BH,COL
N1:CALL READ
MOV [SI],DL
INC SI
BSPCE ' '
DEC BH

39 | P a g e
Prepared By DcVargas
Computer Studies Department

JNZ N1
DEC CH
JZ N3
BSPCE 0AH
BSPCE 0DH
JMP N2
N3:RET
READ1 ENDP

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL, 0AH
JC R2
SUB AL,07H
AND AL,0FH
R2:OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA BX,MAT3
MOV CH,ROW
D4:MOV DH,COL
LOP:MOV CL,04H
MOV DL,[BX]
ADD DL,30H
MOV AH,06H
INT 21H
INC BX
MOV CL,04H
MOV DL,[BX]
SHR DL,CL
CMP DL,0AH
JC D1
ADD DL,07H
D1: ADD DL,30H
MOV AH,06H
INT 21H

40 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV DL,[BX]
AND DL,0FH
CMP DL,0AH
JC D2
ADD DL,07H
D2: ADD DL,30H
MOV AH,06H
INT 21H
INC BX
BSPCE ' '
DEC DH
JNZ LOP
DEC CH
JZ D3
BSPCE 0AH
BSPCE 0DH
JMP D4

D3: RET

DISP ENDP

CODE ENDS
END START

OUTPUT 1:

ENTER THE ORDER OF FIRST MATRIX : 2 2

ENTER THE ORDER OF SECOND MATRIX : 2 2

ENTER THE ELEMENTS OF FIRST MATRIX:


11 11
11 11

ENTER THE ORDER OF SECOND MATRIX


02 02
02 02

SUM OF TWO MATRICES:


013 013
014 014

OUTPUT 2:
ENTER THE ORDER OF FIRST MATRIX : 2 3

ENTER THE ORDER OF SECOND MATRIX : 2 2

MATRICES CANNOT BE ADDED

41 | P a g e
Prepared By DcVargas
Computer Studies Department

20.ADDITION OF TWO MATRICES (BCD)

DATA SEGMENT

M1 DB 'ENTER THE ORDER OF FIRST MATRIX:','$'


M2 DB 0AH,0DH,0AH,'ENTER THE ORDER OF SECOND MATRIX:','$'
M3 DB 0AH,0DH,0AH,'ENTER THE ELEMENTS OF FIRST MATRIX:',0AH,0DH,'$'
M4 DB 0AH,0DH,0AH,'ENTER THE ELEMENTS OF SECOND MATRIX:',0AH,0DH,'$'
M5 DB 0AH,0DH,0AH,' SUM OF TWO MATRICES: ',0AH,0DH, '$'
M6 DB 0AH,0DH,0AH,' MATRICES CANNOT BE ADDED: ','$'
MAT1 DB 10 DUP(0)
MAT2 DB 10 DUP(0)
MAT3 DB 30 DUP(0)
ROW DB 00H
COL DB 00H
DATA ENDS

MESSAGE MACRO MESS


LEA DX,MESS
MOV AH,09H
INT 21H
ENDM

BSPCE MACRO ASC


MOV DL,ASC
MOV AH,06H
INT 21H
ENDM

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MESSAGE M1
CALL READO
MOV BX,DX
MOV ROW,DH
MOV COL,DL
MESSAGE M2
CALL READO
CMP BX,DX
JZ L1
MESSAGE M6
JMP L7
L1:MESSAGE M3
LEA SI,MAT1
CALL READ1
MESSAGE M4
LEA SI,MAT2
CALL READ1
MESSAGE M5

42 | P a g e
Prepared By DcVargas
Computer Studies Department

BSPCE 0AH
LEA DI,MAT1
LEA SI,MAT2
LEA BX,MAT3
MOV CH,ROW
L6:MOV CL,COL
L2:MOV DH,00H
MOV AL,[SI]
ADD AL,[DI]
DAA
JNC L5
INC DH
L5:MOV [BX],DH
INC BX
MOV [BX],AL
INC DI
INC SI
INC BX
DEC CL
JNZ L2
DEC CH
JZ L3
JMP l6
L3: CALL DISP
L7: MOV AH,4CH
INT 21H

READO PROC NEAR


PUBLIC READO
MOV AH,01H
INT 21H
MOV DH,AL
SUB DH,30H
BSPCE ' '
MOV AH,01H
INT 21H
MOV DL,AL
SUB DL,30H
RET
READO ENDP

READ1 PROC NEAR


BSPCE 0AH
MOV CH,ROW
N2:MOV BH,COL
N1:CALL READ
MOV [SI],DL
INC SI
BSPCE ' '
DEC BH

43 | P a g e
Prepared By DcVargas
Computer Studies Department

JNZ N1
DEC CH
JZ N3
BSPCE 0AH
BSPCE 0DH
JMP N2
N3:RET
READ1 ENDP

READ PROC NEAR


PUBLIC READ

MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
SHL DL,CL
MOV AH,01H
INT 21H
AND AL,0FH
OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA BX,MAT3
MOV CH,ROW
D4:MOV DH,COL
LOP:MOV CL,04H
MOV DL,[BX]
ADD DL,30H
MOV AH,06H
INT 21H
INC BX
MOV CL,04H
MOV DL,[BX]
SHR DL,CL
ADD DL,30H
MOV AH,06H
INT 21H
MOV DL,[BX]
AND DL,0FH
ADD DL,30H
MOV AH,06H
INT 21H
INC BX
BSPCE ' '
DEC DH
JNZ LOP

44 | P a g e
Prepared By DcVargas
Computer Studies Department

DEC CH
JZ D3
BSPCE 0AH
BSPCE 0DH
JMP D4
D3: RET
DISP ENDP

CODE ENDS

END START

ENTER THE ORDER OF FIRST MATRIX : 2 2

ENTER THE ORDER OF SECOND MATRIX : 2 2

ENTER THE ELEMENTS OF FIRST MATRIX:


12 13
15 14

ENTER THE ORDER OF SECOND MATRIX


02 02
02 02

SUM OF TWO MATRICES:


014 016
017 016

45 | P a g e
Prepared By DcVargas
Computer Studies Department

21. SUBTRACTION OF TWO MATRICES (HEXADECIMAL)

DATA SEGMENT

M1 DB 'ENTER THE ORDER OF FIRST MATRIX:','$'


M2 DB 0AH,0DH,0AH,'ENTER THE ORDER OF SECOND MATRIX:','$'
M3 DB 0AH,0DH,0AH,'ENTER THE ELEMENTS OF FIRST MATRIX:',0AH,0DH,'$'
M4 DB 0AH,0DH,0AH,'ENTER THE ELEMENTS OF SECOND MATRIX:',0AH,0DH,'$'
M5 DB 0AH,0DH,0AH,' DIFFERENCE OF TWO MATRICES: ',0AH,0DH, '$'
M6 DB 0AH,0DH,0AH,' MATRICES CANNOT BE ADDED: ','$'
MAT1 DB 10 DUP(0)
MAT2 DB 10 DUP(0)
MAT3 DB 30 DUP(0)
ROW DB 00H
COL DB 00H
DATA ENDS

MESSAGE MACRO MESS


LEA DX,MESS
MOV AH,09H
INT 21H
ENDM

BSPCE MACRO ASC


MOV DL,ASC
MOV AH,06H
INT 21H
ENDM

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MESSAGE M1
CALL READO
MOV BX,DX
MOV ROW,DH
MOV COL,DL
MESSAGE M2
CALL READO
CMP BX,DX
JZ L1
MESSAGE M6
JMP L7
L1:MESSAGE M3
LEA SI,MAT1
CALL READ1
MESSAGE M4
LEA SI,MAT2
CALL READ1

46 | P a g e
Prepared By DcVargas
Computer Studies Department

MESSAGE M5
BSPCE 0AH
LEA DI,MAT1
LEA SI,MAT2
LEA BX,MAT3
MOV CH,ROW
L6:MOV CL,COL
L2:MOV DH,' '
MOV DL,[DI]
SUB DL,[SI]
JNC L52
NEG DL
MOV DH,'-'
L5:MOV [BX],DH
INC BX
MOV [BX],DL
INC DI
INC SI
INC BX
DEC CL
JNZ L2
DEC CH
JZ L3
JMP L6
L3: CALL DISP
L7: MOV AH,4CH
INT 21H

READO PROC NEAR


PUBLIC READO
MOV AH,01H
INT 21H
MOV DH,AL
SUB DH,30H
BSPCE ' '
MOV AH,01H
INT 21H
MOV DL,AL
SUB DL,30H
RET
READO ENDP
READ1 PROC NEAR
BSPCE 0AH
MOV CH,ROW
N2:MOV BH,COL
N1:CALL READ
MOV [SI],DL
INC SI
BSPCE ' '
DEC BH

47 | P a g e
Prepared By DcVargas
Computer Studies Department

JNZ N1
DEC CH
JZ N3
BSPCE 0AH
BSPCE 0DH
JMP N2
N3:RET
READ1 ENDP

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
AND DL,0FH
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL, 0AH
JC R2
SUB AL,07H
AND AL,0FH
R2:OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA BX,MAT3
MOV CH,ROW
D4:MOV DH,COL
LOP:MOV CL,04H
MOV DL,[BX]
MOV AH,06H
INT 21H
INC BX
MOV DL,[BX]
SHR DL,CL
CMP DL,0AH
JC D1
ADD DL,07H
D1: ADD DL,30H
MOV AH,06H
INT 21H
MOV DL,[BX]

48 | P a g e
Prepared By DcVargas
Computer Studies Department

AND DL,0FH
CMP DL,0AH
JC D2
ADD DL,07H
D2: ADD DL,30H
MOV AH,06H
INT 21H
INC BX
BSPCE ' '
DEC DH
JNZ LOP
DEC CH
JZ D3
BSPCE 0AH
BSPCE 0DH
JMP D4

D3: RET
DISP ENDP

CODE ENDS

END START

OUTPUT

ENTER THE ORDER OF FIRST MATRIX : 2 2

ENTER THE ORDER OF SECOND MATRIX : 2 2

ENTER THE ELEMENTS OF FIRST MATRIX:

55 65
75 85

ENTER THE ORDER OF SECOND MATRIX


02 02
02 02

DIFFERENCE OF TWO MATRICES:


053 063
073 083

OUTPUT

ENTER THE ORDER OF FIRST MATRIX : 2 2

ENTER THE ORDER OF SECOND MATRIX : 2 3

MATRICES CANNOT BE SUBTRACTED

49 | P a g e
Prepared By DcVargas
Computer Studies Department

22. SUBTRACTION OF TWO MATRICES (BCD)

DATA SEGMENT

M1 DB 'ENTER THE ORDER OF FIRST MATRIX:','$'


M2 DB 0AH,0DH,0AH,'ENTER THE ORDER OF SECOND MATRIX:','$'
M3 DB 0AH,0DH,0AH,'ENTER THE ELEMENTS OF FIRST MATRIX:',0AH,0DH,'$
M4 DB 0AH,0DH,0AH,'ENTER THE ELEMENTS OF SECOND MATRIX:',0AH,0DH,'$'
M5 DB 0AH,0DH,0AH,' DIFFERENCE OF TWO MATRICES: ',0AH,0DH, '$'
M6 DB 0AH,0DH,0AH,' MATRICES CANNOT BE ADDED: ','$'
MAT1 DB 10 DUP(0)
MAT2 DB 10 DUP(0)
MAT3 DB 30 DUP(0)
ROW DB 00H
COL DB 00H
DATA ENDS

MESSAGE MACRO MESS


LEA DX,MESS
MOV AH,09H
INT 21H
ENDM

BSPCE MACRO ASC


MOV DL,ASC
MOV AH,06H
INT 21H
ENDM

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MESSAGE M1
CALL READO
MOV BX,DX
MOV ROW,DH
MOV COL,DL
MESSAGE M2
CALL READO
CMP BX,DX
JZ L1
MESSAGE M6
JMP L7
L1:MESSAGE M3
LEA SI,MAT1
CALL READ1
MESSAGE M4
LEA SI,MAT2
CALL READ1
MESSAGE M5

50 | P a g e
Prepared By DcVargas
Computer Studies Department

BSPCE 0AH
LEA DI,MAT1
LEA SI,MAT2
LEA BX,MAT3
MOV CH,ROW
L6:MOV CL,COL
L2:MOV DH,' '
MOV AL,[DI]
SUB AL,[SI]
DAS
JNC L5
MOV DL,99H
SUB DL,AL
MOV AL,DL
ADD AL,01H
DAA
MOV DH,'-'
L5:MOV [BX],DH
INC BX
MOV [BX],AL
INC DI
INC SI
INC BX
DEC CL
JNZ L2
DEC CH
JZ L3
JMP L6
L3: CALL DISP
L7: MOV AH,4CH
INT 21H

READO PROC NEAR


PUBLIC READO
MOV AH,01H
INT 21H
MOV DH,AL
SUB DH,30H
BSPCE ' '
MOV AH,01H
INT 21H
MOV DL,AL
SUB DL,30H
RET
READO ENDP

READ1 PROC NEAR


BSPCE 0AH
MOV CH,ROW
N2:MOV BH,COL
N1:CALL READ

51 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV [SI],DL
INC SI
BSPCE ' '
DEC BH
JNZ N1
DEC CH
JZ N3
BSPCE 0AH
BSPCE 0DH
JMP N2
N3:RET
READ1 ENDP

READ PROC NEAR


PUBLIC READ

MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
SHL DL,CL
MOV AH,01H
INT 21H
AND AL,0FH
OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA BX,MAT3
MOV CH,ROW
D4:MOV DH,COL
LOP:MOV CL,04H
MOV DL,[BX]
MOV AH,06H
INT 21H
INC BX
MOV DL,[BX]
SHR DL,CL
D1: ADD DL,30H
MOV AH,06H
INT 21H
MOV DL,[BX]
AND DL,0FH
D2: ADD DL,30H
MOV AH,06H
INT 21H
INC BX
BSPCE ' '

52 | P a g e
Prepared By DcVargas
Computer Studies Department

DEC DH
JNZ LOP
DEC CH
JZ D3
BSPCE 0AH
BSPCE 0DH
JMP D4
D3: RET
DISP ENDP
CODE ENDS
END START

OUTPUT

ENTER THE ORDER OF FIRST MATRIX : 2 2

ENTER THE ORDER OF SECOND MATRIX : 2 2

ENTER THE ELEMENTS OF FIRST MATRIX:

10 10
10 10

ENTER THE ORDER OF SECOND MATRIX


02 02
02 02

DIFFERENCE OF TWO MATRICES:


08 08
08 08

53 | P a g e
Prepared By DcVargas
Computer Studies Department

23.TRANSPOSE OF THE MATRIX

DATA SEGMENT
M1 DB 'ENTER THE ORDER OF THE MATRIX:','$'
M2 DB 0AH,0DH,0AH,'ENTER THE ORDER OF SECOND MATRIX:','$'
M3 DB 0AH,0DH,0AH,'TRANSPOSE MATRIX:',0AH,0DH,'$'
MAT1 DB 10 DUP(0)
MAT2 DB 10 DUP(0)
ROW DB 00H
COL DB 00H
DATA ENDS
MESSAGE MACRO MESS
LEA DX,MESS
MOV AH,09H
INT 21H
ENDM
BSPCE MACRO ASC
MOV DL,ASC
MOV AH,06H
INT 21H
ENDM
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MESSAGE M1
CALL READO
MOV BX,DX
MOV ROW,DH
MOV COL,DL
MESSAGE M2
LEA SI,MAT1
CALL READ1
LEA DI,MAT1
LEA SI,MAT2
MOV DH,00H
MOV DL,COL
MOV AH,COL
L3:MOV AL,ROW
MOV BX,DI
L1:MOV CL,[BX]
MOV [SI],CL
ADD BX,DX
INC SI
DEC AL
JNZ L1
INC DI
DEC AH
JNZ L3
LEA SI,MAT2
CALL DISP
MOV AH,4CH
INT 21H

54 | P a g e
Prepared By DcVargas
Computer Studies Department

READO PROC NEAR


PUBLIC READO
MOV AH,01H
INT 21H
MOV DH,AL
SUB DH,30H
BSPCE ' '
MOV AH,01H
INT 21H
MOV DL,AL
SUB DL,30H
RET
READO ENDP

READ1 PROC NEAR


BSPCE 0AH
MOV CH,ROW
N2:MOV BH,COL
N1:CALL READ
MOV [SI],DL
INC SI
BSPCE ' '
DEC BH
JNZ N1
DEC CH
JZ N3
BSPCE 0AH
BSPCE 0DH
JMP N2
N3:RET
READ1 ENDP

READ PROC NEAR


PUBLIC READ

MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
AND DL,0FH
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL, 0AH
JC R2
SUB AL,07H
AND AL,0FH
R2:OR DL,AL
RET

55 | P a g e
Prepared By DcVargas
Computer Studies Department

READ ENDP

DISP PROC NEAR


PUBLIC DISP

MESSAGE M3
BSPCE 0AH
MOV DH,COL
D4:MOV BH,ROW
LOP:MOV CL,04H
MOV DL,[SI]
SHR DL,CL
CMP DL,0AH
JC D1
ADD DL,07H
D1: ADD DL,30H
MOV AH,06H
INT 21H
MOV DL,[SI]
AND DL,0FH
CMP DL,0AH
JC D2
ADD DL,07H
D2: ADD DL,30H
MOV AH,06H
INT 21H
INC SI
BSPCE ' '
DEC BH
JNZ LOP
DEC DH
JZ D3
BSPCE 0AH
BSPCE 0DH
JMP D4
D3: RET
DISP ENDP

CODE ENDS
END START

OUTPUT :

ENTER THE ORDER OF THE MATRIX : 2 3

ENTER THE ELEMENTS OF THE MATRIX:


11 55 99
22 74 51

TRANSPOSE MATRIX :
11 22
55 74
99 51

56 | P a g e
Prepared By DcVargas
Computer Studies Department

24.GENERATION OF PRIME NUMBERS(HEXADECIMAL)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER LIMIT :''$'
MESS2 DB 0AH,0DH,'PRIME NUMBERS UPTO LIMIT :''$'
MESS3 DB 0AH,0DH,'NO OF ELEMENTS IN PRIME SERIES= ''$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
XOR SI,SI
MOV DH,00H
L1: INC DH
JZ L3
CMP DH,CH
JA L3
CALL SQRT
MOV BH,01H
L2:MOV AL,DH
MOV AH,00H
INC BH
CMP BH,DL
JA L4
DIV BH
CMP AH,00H
JNZ L2
JMP L1
L4:MOV BL,DH
CALL DISP
MOV DL,','
MOV AH,06H
INT 21H
INC SI
JMP L1
L3:LEA DX,MESS3
MOV AH,09H
INT 21H
MOV BX,SI
CALL DISP
MOV AH,4CH

57 | P a g e
Prepared By DcVargas
Computer Studies Department

INT 21H MOV


AH,06H
READ PROC NEAR INT 21H
PUBLIC READ AND
BL,0FH
MOV CMP
AH,01H BL,0AH
INT 21H JC N2
MOV ADD
CL,04H BL,07H
MOV DL,AL N2:ADD
SUB DL,30H BL,30H
CMP MOV DL,BL
DL,0AH MOV
JC R1 AH,06H
SUB DL,07H INT 21H
R1:SHL RET
DL,CL DISP ENDP
MOV
AH,01H SQRT PROC NEAR
INT 21H PUBLIC DISP
SUB AL,30H MOV DL,00H
CMP T1:INC DL
AL,0AH MOV AL,DH
JC R2 MOV AH,00H
SUB AL,07H DIV DL
AND CMP DL,AL
AL,0FH JC T1
R2: OR JZ T2
DL,AL DEC DL
RET T2:RET
READ ENDP
SQRT ENDP
DISP PROC NEAR
PUBLIC DISP CODE ENDS
MOV END START
CL,04H
MOV DL,BL
SHR DL,CL
CMP OUTPUT:
DL,0AH
JC N1
ADD ENTER LIMIT : 0F
DL,07H PRIME NUMBERS UPTO LIMIT :
N1: ADD 01,02,03,05,07,0B,0D
DL,30H NO. OF ELEMENTS IN PRIME
SERIES : 07

58 | P a g e
Prepared By DcVargas
Computer Studies Department

25. GENERATION OF PRIME NUMBERS (BCD)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER LIMIT :''$'
MESS2 DB 0AH,0DH,'PRIME NUMBERS UPTO LIMIT :''$'
MESS3 DB 0AH,0DH,'NO OF ELEMENTS IN PRIME SERIES= ''$'
NUM DB 00H
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
MOV DH,00H
MOV SI,0000H
L1:MOV AL,DH
ADD AL,01H
DAA
JC L3
MOV DH,AL
CMP DH,CH
JA L3
CALL SQRT
MOV BH,01H
L2:MOV AL,BH
ADD AL,01H
DAA
MOV BH,AL
CMP BH,DL
JA L4
MOV AH,00H
MOV NUM,DH
L5:MOV AL,NUM
SUB AL,BH
DAS
MOV NUM,AL
MOV AL,AH
ADD AL,01H
DAA
MOV AH,AL
CMP NUM,BH

59 | P a g e
Prepared By DcVargas
Computer Studies Department

JAE L5
CMP NUM,00H
JZ L1
JMP L2
L4: MOV BL,DH
CALL DISP
MOV DL,'.'
MOV AH,06H
INT 21H
MOV AX,SI
ADD AL,01H
DAA
MOV SI,AX
JMP L1
L3:LEA DX,MESS3
MOV AH,09H
INT 21H
MOV BX,SI
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP

MOV CL,04H
MOV DL,BL
SHR DL,CL
ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H

60 | P a g e
Prepared By DcVargas
Computer Studies Department

RET
DISP ENDP

SQRT PROC NEAR


PUBLIC DISP
MOV DL,00H
T1:INC DL
MOV BL,00H
MOV CL,DH
T2:MOV AL,CL
SUB AL,DL
DAS
MOV CL,AL
INC BL
CMP CL,DL
JAE T2
CMP DL,BL
JC T1
JE T3
DEC DL
T3:RET

SQRT ENDP

CODE ENDS
END START

OUTPUT:

ENTER LIMIT : 09
PRIME NUMBERS UPTO LIMIT : 01,02,03,05,07
NO. OF ELEMENTS IN PRIME SERIES : 05

61 | P a g e
Prepared By DcVargas
Computer Studies Department

26.GENERATION OF PERFECT DIVIDING NUMBERS(HEXADECIMAL)

DATA SEGMENT
MESS1 DB 'ENTER THE LIMIT :','$'
MESS2 DB 0AH,0DH,'PERFECT DIVISORS:','$'
MESS3 DB 0AH,0DH,'NUMBER OF PERFECT DIVISORS UPTO THE LIMIT=','$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
XOR SI,SI
MOV DH,01H
L1: INC DH
JZ L3
CMP DH,CH
JA L3
CALL SQRT
MOV BL,01H
MOV BH,01H
L2: INC BH
CMP BH,DL
JA L4
MOV AH,00H
MOV AL,DH
DIV BH
CMP AH,00H
JNE L2
ADD AL,BH
ADD BL,AL
JMP L2
L4: CMP BL,DH
JNE L1
CALL DISP
MOV DL,' '
MOV AH,06H
INT 21H
INC SI
JMP L1
L3:LEA DX,MESS3
MOV AH,09H

62 | P a g e
Prepared By DcVargas
Computer Studies Department

INT 21H
MOV BX,SI
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET

READ ENDP

DISP PROC NEAR


PUBLIC DISP
MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC N1
ADD DL,07H
N1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC N2
ADD BL,07H
N2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET
DISP ENDP

63 | P a g e
Prepared By DcVargas
Computer Studies Department

SQRT PROC NEAR


PUBLIC SQRT
MOV DL,00H
T1:INC DL
MOV AL,DH
MOV AH,00H
DIV DL
CMP DL,AL
JC T1
JZ T2
DEC DL
T2:RET

SQRT ENDP
CODE ENDS
END START

OUTPUT:

ENTER LIMIT : FF
PERFECT DIVISORS ARE: 06 1C
NO. OF ELEMENTS : 02

64 | P a g e
Prepared By DcVargas
Computer Studies Department

27.GENERATION OF PERFECT DIVIDING NUMBERS(HEXADECIMAL)

DATA SEGMENT

MESS1 DB 'ENTER THE LIMIT :','$'


MESS2 DB 0AH,0DH,'PERFECT DIVISORS :','$'
MESS3 DB 0AH,0DH,'NUMBER OF PERFECT DIVISORS UPTO THE LIMIT=','$'
LIM DB 00H
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
LEA DX,MESS2
MOV AH,09H
INT 21H
XOR DI,DI
CALL PERFECT
LEA DX,MESS3
MOV AH,09H
INT 21H
MOV CX,DI
MOV BL,CL
CALL DISP
MOV AH,4CH
INT 21H

PERFECT PROC NEAR


PUBLIC PERFECT
MOV BL,01H
P1:CMP BH,BL
JA P3
RET
P3: CALL SQRT
MOV DL,01H
MOV CH,CL
MOV CL,02H
P4: CMP CH,CL
JC P5
MOV AH,BL
XOR DH,DH
CALL DIVD
CMP AH,00H
JNZ P7
MOV AL,DL
ADD AL,DH
DAA
ADD AL,CL

65 | P a g e
Prepared By DcVargas
Computer Studies Department

DAA
MOV DL,AL
P7: MOV AL,CL
ADD AL,01H
DAA
MOV CL,AL
JMP P4
P5: CMP DL,01H
JE P6
CMP BL,DL
JNE P6
CALL DISP
MOV AX,DI
ADD AL,01H
DAA
MOV DI,AX
P6: MOV AL,BL
ADD AL,01H
DAA
MOV BL,AL
JMP P1
PERFECT ENDP

SQRT PROC NEAR


PUBLIC SQRT
MOV CL,01H
B3: XOR DH,DH
MOV AH,BL
MOV AL,CL
ADD AL,01H
DAA
MOV CL,AL
CALL DIVD
CMP DH,CL
JAE B3
MOV AL,CL
SUB AL,01H
DAS
MOV CL,AL
RET
SQRT ENDP

DIVD PROC NEAR


PUBLIC DIVD
B1: CMP AH,CL
JB B2
MOV AL,AH
SUB AL,CL
DAS
MOV AH,AL
MOV AL,DH
ADD AL,01H
DAA
MOV DH,AL
JMP B1

66 | P a g e
Prepared By DcVargas
Computer Studies Department

B2:RET
DIVD ENDP

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV BH,AL
SUB BH,30H
MOV CL,04H
SHL BH,CL
MOV AH,01H
INT 21H
SUB AL,30H
OR BH,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
MOV AH,BL
MOV DL,AH
MOV CL,04H
SHR AH,CL
ADD AH,30H
MOV DL,AH
MOV AH,06H
INT 21H
MOV AH,BL
AND AH,0FH
ADD AH,30H
MOV DL,AH
MOV AH,06H
INT 21H
MOV DL,' '
MOV AH,06H
INT 21H
RET
DISP ENDP

CODE ENDS
END START

OUTPUT:

ENTER LIMIT : 99
PERFECT DIVISORS ARE: 06 28
NO. OF ELEMENTS : 02

ENTER LIMIT : 20
PERFECT DIVISORS ARE: 06
NO. OF ELEMENTS : 01

67 | P a g e
Prepared By DcVargas
Computer Studies Department

28.GENERATION OF FIBONACCI SERIES (HEXADECIMAL)


DATA SEGMENT

MESS1 DB 0AH,0DH,'ENTER THE LIMIT:''$'


MESS2 DB 0AH,0DH,'FIBONACCI SERIES UPTO THE LIMIT ','$'
MESS3 DB 0AH,0DH,'THE NUMBER OF ELEMENTS IN FIBONACCI SERIES IS: ','$'
MESS4 DB 'IS: ','$'
TEMP DB 01H
COUNT DB 00H
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BL,CH
CALL DISP
LEA DX,MESS4
MOV AH,09H
INT 21H
XOR BX,BX
AGAIN: INC COUNT
CALL DISP
ADD TEMP,BH
JC NEXT
MOV BL,TEMP
MOV TEMP,BH
MOV BH,BL
CMP BL,CH
JA NEXT
JMP AGAIN
NEXT:LEA DX,MESS3
MOV AH,09H
INT 21H
MOV AL,COUNT
ADD AL,00H
DAA
MOV BL,AL
CALL DISP
MOV AH,4CH
INT 21H

68 | P a g e
Prepared By DcVargas
Computer Studies Department

READ PROC NEAR


PUBLIC READ
MOV CL,04H
MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET

READ ENDP

DISP PROC NEAR


PUBLIC DISP
MOV DL,' '
MOV AH,06H
INT 21H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H

L1: ADD DL,30H


MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H

L2: ADD BL,30H


MOV DL,BL
MOV AH,06H
INT 21H
RET
DISP ENDP
CODE ENDS
END START

OUTPUT
ENTER THE LIMIT: AA
FIBONACCI SERIES UPTO THE LIMIT AA IS : 00 01 01 02 03 05 08 0D 15 22 37 59 90
NUMBERS OF ELEMENTS IN FIBONACCI SERIES : 13

69 | P a g e
Prepared By DcVargas
Computer Studies Department

29.GENERATION OF FIBONACCI SERIES (BCD)

DATA SEGMENT

MESS1 DB 0AH,0DH,'ENTER THE LIMIT:''$'


MESS2 DB 0AH,ODH'FIBONACCI SERIES UPTO THE LIMIT ','$'
MESS3 DB 0AH,0DH,'THE NUMBER OF ELEMENTS IN FIBONACCI SERIES IS: ','$'
MESS4 DB 'IS: ','$'
TEMP DB 01H
COUNT DB 00H

DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BL,CH
CALL DISP
LEA DX,MESS4
MOV AH,09H
INT 21H
XOR BX,BX
AGAIN: INC COUNT
CALL DISP
ADD TEMP,BH
JC NEXT
MOV BL,TEMP
MOV TEMP,BH
MOV BH,BL
CMP BL,CH
JA NEXT
JMP AGAIN
NEXT:LEA DX,MESS3
MOV AH,09H
INT 21H
MOV AL,COUNT
ADD AL,00H
DAA
MOV BL,AL
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV CL,04H

70 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV AH,01H
INT 21H
MOV DL,AL
MOV CL,04H
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET

READ ENDP

DISP PROC NEAR


PUBLIC DISP
MOV DL,' '
MOV AH,06H
INT 21H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1: ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2: ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET
DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER LIMIT : FF
PERFECT DIVISORS ARE: 06 1C
NO. OF ELEMENTS IN PRIME SERIES : 02
ENTER THE LIMIT: 08
THE FIBONACCI SERIES UPTO THE LIMIT 09 IS: 00,01,01,02,03,05,08
NUMBERS OF ELEMENTS IN THE FIBONACCI SERIES:07

71 | P a g e
Prepared By DcVargas
Computer Studies Department

30.GENERATION OF FIBONACCI SERIES (BCD)

DATA SEGMENT

MESS1 DB 0AH,0DH,'ENTER THE LIMIT:''$'


MESS2 DB 0AH,0DH,'FIBONACCI SERIES UPTO THE LIMIT ','$'
MESS3 DB 0AH,0DH,'THE NUMBER OF ELEMENTS IN FIBONACCI SERIES IS: ','$'
MESS4 DB 'IS: ','$'
TEMP DB 01H
COUNT DB 00H
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BL,CH
CALL DISP
LEA DX,MESS4
MOV AH, 09H
INT 21H
XOR BX,BX
AGAIN: INC COUNT
CALL DISP
MOV AL,TEMP
ADD AL,BH
DAA
JC NEXT
MOV BL,AL
MOV TEMP,BH
MOV BH,BL
CMP BL,CH
JA NEXT
JMP AGAIN
NEXT:LEA DX,MESS3
MOV AH,09H
INT 21H
MOV AL,COUNT
ADD AL,00H
DAA
MOV BL,AL

72 | P a g e
Prepared By DcVargas
Computer Studies Department

CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV CL,04H
MOV AH,01H
INT 21H
SHL AL,CL
MOV DL,AL
MOV AH,01H
INT 21H
AND AL,0FH
OR DL,AL
RET

READ ENDP
DISP PROC NEAR
PUBLIC DISP
MOV DL,' '
MOV AH,06H
INT 21H
MOV DL,BL
SHR DL,CL
ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET
DISP ENDP
CODE ENDS
END START

OUTPUT

ENTER THE LIMIT: 99


FIBONACCI SERIES UPTO THE LIMIT 99 IS : 00 01 01 02 03 05 08 13 21 34 55 89
NUMBER OF ELEMENTS IN THE FIBONACCI SERIES :12

73 | P a g e
Prepared By DcVargas
Computer Studies Department

31.FACTORIAL OF A NUMBER USING RECURSION TECHNIQUE

DATA SEGMENT
MESS1 DB 'ENTER THE NUMBER(0-8):''$'
MESS2 DB 0AH,0DH, ' FACTORIAL OF THE GIVEN NUMBER=''$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
MOV AX,0001H
MOV BH,00H
CALL FACT
MOV BX,AX
CALL DISP
MOV AH,4CH
INT 21H

FACT PROC NEAR


PUBLIC FACT
CMP BX,0001H
JBE NEXT
MUL BX
DEC BX
CALL FACT
NEXT:RET
FACT ENDP

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV DL,AL
SUB DL,30H
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA DX,MESS2
MOV AH,09H
INT 21H
MOV CL,04H
MOV CH,02H

74 | P a g e
Prepared By DcVargas
Computer Studies Department

BACK:MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC L2
ADD BH,07H
L2:ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
DEC CH
JZ L3
MOV BH,BL
JMP BACK
L3:RET

DISP ENDP

CODE ENDS
END START

OUTPUT:

ENTER THE NO<0-8> : 7


FACTORIAL OF THE GIVEN NUMBER : 13B0

ENTER THE NO<0-8> : 5


FACTORIAL OF THE GIVEN NUMBER : 0078

75 | P a g e
Prepared By DcVargas
Computer Studies Department

32. CONVERSION FROM BINARY TO GRAY ( HEXADECIMAL )

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER BINARY CODE :''$'
MESS2 DB 0AH,0DH,'EQUIVALENT GRAY CODE :''$'

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
SHR DL,01H
XOR BL,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL DISP
MOV AH,4CH
INT 21H
READ PROC NEAR
PUBLIC READ

MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP

76 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET

DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER BINARY CODE: 10


EQUIVALENT GRAY CODE: 18

ENTER BINARY CODE: 80


EQUIVALENT GRAY CODE: C0

ENTER BINARY CODE: F0


EQUIVALENT GRAY CODE: 88

77 | P a g e
Prepared By DcVargas
Computer Studies Department

33.CONVERSION FROM GRAY CODE TO BINARY CODE(HEXADECIMAL)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER GRAY CODE :''$'
MESS2 DB 0AH,0DH,'EQUIVALENT BINARY CODE :''$'

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
MOV CH,07H
M1:SHR DL,01H
XOR BL,DL
DEC CH
JNZ M1
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ

MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET

78 | P a g e
Prepared By DcVargas
Computer Studies Department

READ ENDP

DISP PROC NEAR


PUBLIC DISP
MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET

DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER GRAY CODE: ‘21


EQUIVALENT BINARY CODE: ‘3E

ENTER GRAY CODE: 80


EQUIVALENT BINARY CODE: FF

79 | P a g e
Prepared By DcVargas
Computer Studies Department

34.CONVERSION OF ARRAY OF BINARY CODE TO GRAY CODE


(HEXADECIMAL)

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER LIMIT :''$'
MESS2 DB 0AH,0DH,'BINARY CODE GRAY CODE :''$'
NL DB 0AH,0DH,' ','$'
BSP DB' ','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
M1:LEA DX,NL
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
SHR DL,01H
XOR BL,DL
LEA DX,BSP
MOV AH,09H
INT 21H
CALL DISP
DEC BH
JNZ M1
MOV AH,4CH
INT 21H
READ PROC NEAR
PUBLIC READ
MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH

80 | P a g e
Prepared By DcVargas
Computer Studies Department

JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET
READ ENDP
DISP PROC NEAR
PUBLIC DISP
MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET

DISP ENDP
CODE ENDS
END START

OUTPUT:
ENTER LIMIT : 05
BINARY CODE GRAY CODE
3E 21
21 31
16 1D
10 18
02 03

81 | P a g e
Prepared By DcVargas
Computer Studies Department

35. CONVERSION OF ARRAY OF GRAYCODE TO BINARY CODE


(HEXADECIMAL)
DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER LIMIT :''$'
MESS2 DB 0AH,0DH,'GRAY CODE BINARY CODE :''$'
NL DB 0AH,0DH,' ','$'
BSP DB' ','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
M2:LEA DX,NL
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
MOV CH,07H
M1: SHR DL,01H
XOR BL,DL
DEC CH
JNZ M1
LEA DX,BSP
MOV AH,09H
INT 21H
CALL DISP
DEC BH
JNZ M2
MOV AH,4CH
INT 21H
READ PROC NEAR
PUBLIC READ
MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H

82 | P a g e
Prepared By DcVargas
Computer Studies Department

SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET
READ ENDP
DISP PROC NEAR
PUBLIC DISP
MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET

DISP ENDP
CODE ENDS
END START

OUTPUT:
ENTER LIMIT : 05
GRAY BINARY
03 02
14 18
21 3E
C2 83
A5 C6

83 | P a g e
Prepared By DcVargas
Computer Studies Department

36.GCD OF TWO 8-BIT HEXADECIMAL NUMBERS.

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER :''$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER :''$'
MESS3 DB 0AH,0DH,'GCD OF TWO NUMBER IS :''$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
T1:MOV AL,BH
MOV AH,00H
DIV BL
MOV BH,BL
MOV BL,AH
CMP AH,00H
JNE T1
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH

84 | P a g e
Prepared By DcVargas
Computer Studies Department

OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA DX,MESS3
MOV AH,09H
INT 21H
MOV CL,04H
MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1: ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC L2
ADD BH,07H
L2:ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
RET
DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER FIRST NUMBER : 0A


ENTER SECOND NUMBER : 05
GCD OF TWO NUMBER IS : 05

ENTER FIRST NUMBER : 0C


ENTER SECOND NUMBER : 06
GCD OF TWO NUMBER IS : 06

85 | P a g e
Prepared By DcVargas
Computer Studies Department

37.GCD OF TWO 8-BIT NUMBERS(BCD).

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER FIRST NUMBER :''$'
MESS2 DB 0AH,0DH,'ENTER SECOND NUMBER :''$'
MESS3 DB 0AH,0DH,'GCD OF TWO NUMBER IS :''$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
CALL READ
MOV BL,DL
N1:CMP BH,BL
JZ N3
JNB N2
MOV AL,BL
SUB AL,BH
DAS
MOV BL,AL
JMP N1
N2:MOV AL,BH
SUB AL,BL
DAS
MOV BH,AL
JMP N1
N3:CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ

MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H

86 | P a g e
Prepared By DcVargas
Computer Studies Department

INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP
LEA DX,MESS3
MOV AH,09H
INT 21H
MOV CL,04H
MOV DL,BH
SHR DL,CL
ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
ADD BH,30H
MOV DL,BH
MOV AH,06H
INT 21H
RET
DISP ENDP
CODE ENDS
END START

OUTPUT:

ENTER FIRST NUMBER : ‘08


ENTER SECOND NUMBER : ‘12
GCD OF TWO NUMBER IS : ‘04

ENTER FIRST NUMBER : ‘09


ENTER SECOND NUMBER : ‘06
GCD OF TWO NUMBER IS : ‘03

87 | P a g e
Prepared By DcVargas
Computer Studies Department

38.REVERSE OF A BYTE

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE NUMBER :','$'
MESS2 DB 0AH,0DH,'REVERSE OF A GIVEN BYTE :','$'

DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BL,00H
MOV CH,08H
N1: SHL DL,01H
RCR BL,01H
DEC CH
JNZ N1
CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV CL,04H
MOV DL,' '
MOV AH,06H
INT 21H
MOV AH,01H
INT 21H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
RET
READ ENDP

88 | P a g e
Prepared By DcVargas
Computer Studies Department

DISP PROC NEAR


PUBLIC DISP
LEA DX,MESS2
MOV AH,09H
INT 21H
MOV CL,04H
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1: ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC L2
ADD BL,07H
L2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
RET

DISP ENDP
CODE ENDS

END START

OUTPUT:

ENTER THE NUMBER : 12


REVERSE OF GIVEN BYTE: 48

ENTER THE NUMBER:F8


REVERSE OF GIVEN BYTE:1F

89 | P a g e
Prepared By DcVargas
Computer Studies Department

39.REVERSAL OF WORD

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE NUMBER :','$'
MESS2 DB 0AH,0DH,'REVERSE OF A GIVEN NUMBER :','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV BX,DX
MOV BX,0000H
MOV CH,10H
N1: SHL DX,01H
RCR BX,01H
DEC CH
JNZ N1
CALL DISP
MOV AH,4CH
INT 21H
READ PROC NEAR
PUBLIC READ
MOV CH,02H
R3:MOV AH,01H
INT 21H
MOV CL,04H
MOV DL,AL
SUB DL,30H
CMP DL,0AH
JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
R2: AND AL,0FH
OR DL,AL
DEC CH
JZ R4
MOV DH,DL
JMP R3
R4: RET
READ ENDP
DISP PROC NEAR

90 | P a g e
Prepared By DcVargas
Computer Studies Department

PUBLIC DISP
LEA DX,MESS2
MOV AH,09H
INT 21H
MOV CH,02H
L3:MOV CL,04H
MOV DL,BH
SHR DL,CL
CMP DL,0AH
JC L1
ADD DL,07H
L1: ADD DL,30H
MOV AH,06H
INT 21H
AND BH,0FH
CMP BH,0AH
JC L2
ADD BH,07H
L2:ADD BH,30H
MOV DL,BH

MOV AH,06H
INT 21H
DEC CH
JZ L4
MOV BH,BL
JMP L3
L4:RET

DISP ENDP
CODE ENDS
END START

OUTPUT:
ENTER THE NUMBER: F4C9
REVERSE OF THE GIVEN WORD:932F

ENTER THE NUMBER: B27A


REVERSE OF THE GIVEN WORD:5E4D

91 | P a g e
Prepared By DcVargas
Computer Studies Department

40.REVERSAL OF AN ARRAY

DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER LIMIT :''$'
MESS2 DB 0AH,0DH,'ENTER THE ARRAY ELEMENTS :''$'
MESS3 DB 0AH,0DH,'REVERSE OF THE STRING :''$'
NUM DB 10 DUP (0)
RNUM DB 10 DUP (0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,MESS1
MOV AH,09H
INT 21H
CALL READ
MOV CH,DL
LEA DX,MESS2
MOV AH,09H
INT 21H
MOV DH,CH
LEA BX,NUM
L1:CALL READ
MOV [BX],DL
INC BX
DEC DH
JNZ L1
LEA SI,RNUM
LEA BX,NUM
MOV DL,CH
MOV DH,00H
ADD BX,DX
MOV DH,CH
L2:DEC BX
MOV DL,[BX]
MOV [SI],DL
DEC DH
JZ NEXT
INC SI
JMP L2
NEXT:CALL DISP
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV CL,04H
MOV DL,','
MOV AH,06H
INT 21H
MOV AH,01H
INT 21H
MOV DL,AL
SUB DL,30H
CMP DL,0AH

92 | P a g e
Prepared By DcVargas
Computer Studies Department

JC R1
SUB DL,07H
R1:SHL DL,CL
MOV AH,01H
INT 21H
SUB AL,30H
CMP AL,0AH
JC R2
SUB AL,07H
AND AL,0FH
R2: OR DL,AL
RET
READ ENDP

DISP PROC NEAR


PUBLIC DISP

LEA DX,MESS3
MOV AH,09H
INT 21H
LEA SI,RNUM
MOV CL,04H
M3:MOV DL,','
MOV AH,06H
INT 21H
MOV bL,[SI]
MOV DL,BL
SHR DL,CL
CMP DL,0AH
JC M1
ADD DL,07H
M1:ADD DL,30H
MOV AH,06H
INT 21H
AND BL,0FH
CMP BL,0AH
JC M2
ADD BL,07H
M2:ADD BL,30H
MOV DL,BL
MOV AH,06H
INT 21H
DEC CH
JZ M4
INC SI
JMP M3
M4: RET

DISP ENDP
CODE ENDS
END START

OUTPUT
ENTER THE LIMIT OF AN ARRAY:05
ENTER THE ARRAY ELEMENTS:12,4C,DB,D5
REVERSE OF THE GIVEN ARRAY:D5,DB,4C,12

93 | P a g e
Prepared By DcVargas
Computer Studies Department

41.TO DISPLAY CURRENT TIME.

DATA SEGMENT DISP PROC NEAR


MESS1 DB 0AH,0DH,'TIME PUBLIC DISP
IS:'0AH,0DH,'$'
DATA ENDS MOV BL,AH
MOV DL,AL
CODE SEGMENT ADD DL,30H
ASSUME CS:CODE,DS:DATA MOV AH,06H
INT 21H
START: MOV DL,BL
MOV AX,DATA ADD DL,30H
MOV DS,AX MOV AH,06H
LEA DX,MESS1 INT 21H
MOV AH,09H RET
INT 21H
L1:MOV AH,2CH DISP ENDP
INT 21H
MOV AL,CH CONV PROC NEAR
CALL CONV PUBLIC CONV
CALL DISP
MOV DL,':' MOV AH,00H
MOV AH,06H MOV BH,0AH
INT 21H DIV BH
MOV AL,CL RET
CALL CONV
CALL DISP CONV ENDP
MOV DL,':' CODE ENDS
MOV AH,06H END START
INT 21H
MOV DL,0DH
MOV AH,06H
INT 21H OUTPUT:
JMP L1
MOV AH,4CH THE CURRENT TIME IS:
INT 21H 23:37:23.85

94 | P a g e
Prepared By DcVargas
Computer Studies Department

42.TO DISPLAY CURRENT DATE.

DATA SEGMENT MOV CL,04H


MESS1 DB 0AH,0DH,'THE XOR AH,AH
CURRENT DATE IS:'$' MOV AL,BL
DATA ENDS MOV BL,0AH
DIV BL
CODE SEGMENT SHL AL,CL
ASSUME CS:CODE,DS:DATA ADD AL,AH
DAA
START: MOV BL,AL
MOV AX,DATA RET
MOV DS,AX
LEA DX,MESS1 CONV ENDP
MOV AH,09H
INT 21H DISP PROC NEAR
MOV AH,2AH PUBLIC DISP
INT 21H
MOV SI,CX MOV CL,04H
MOV BL,DH CALL CONV
MOV BH,DL MOV DL,BL
CALL DISP SHR DL,CL
MOV DL,'-' ADD DL,30H
MOV AH,06H MOV AH,06H
INT 21H INT 21H
MOV BL,BH AND BL,0FH
CALL DISP ADD BL,30H
MOV DL,'-' MOV DL,BL
MOV AH,06H MOV AH,06H
INT 21H INT 21H
XOR DX,DX RET
MOV AX,SI
MOV CX,0064H DISP ENDP
DIV CX CODE ENDS
MOV DH,DL END START
MOV BL,AL
CALL DISP
MOV BL,DH
MOV AH,4CH
INT 21H OUTPUT:

CONV PROC NEAR THE CURRENT DATE IS: MON


PUBLIC CONV 07/11/2011

95 | P a g e
Prepared By DcVargas
Computer Studies Department

INTERFACING PROGRAMS

1.SEVEN SEGMENT DISPLAY

CONFIGURATION
PORT A  OUTPUT
PORT B OUTPUT
PORT C LOW  OUTPUT
PORT C UP  OUTPUT
ADDRESSES

PORTA EQU 0D800H


PORTB EQU 0D801H
PORTC EQU 0D802H

CONTROL WORD
For 8255, Port A and B are used as output ports. The control word format of 8255 according to
hardware connections is:

96 | P a g e
Prepared By DcVargas
Computer Studies Department

1.SEVEN SEGMENT DISPLAY


JMP L2
DATA SEGMENT MOV AH,4CH
MESS1 DB 'ENTER A 4- INT 21H
DIGIT NUMBER: ','$'
SEVSEG DB READ PROC NEAR
3FH,06H,5BH,4FH,66H,6DH,7DH,0 PUBLIC READ
7H,7FH,6FH LEA BX,SEVSEG
NUMAR DB 5 DUP(0) MOV CL,04H
DATA ENDS R2:MOV AH,01H
INT 21H
CODE SEGMENT SUB AL,30H
ASSUME CS:CODE,DS:DATA XLAT
START:MOV AX,DATA MOV [SI],AL
MOV DS,AX INC SI
LEA DX,MESS1 DEC CL
MOV AH,09H JNZ R2
INT 21H RET
MOV DX,0D883H READ ENDP
MOV AL,80H
OUT DX,AL DELAY PROC NEAR
LEA SI,NUMAR PUBLIC DELAY
CALL READ MOV DI,00FFH
L2:LEA SI,NUMAR D2:MOV BP,0FFFH
MOV CH,03H D1:DEC BP
L1:MOV DX,0D882H JNZ D1
MOV AL,CH DEC DI
OUT DX,AL JNZ D2
MOV AL,[SI] RET
MOV DX,0D880H DELAY ENDP
OUT DX,AL
CALL DELAY
INC SI CODE ENDS
SUB CH,01H END START
JNC L1

97 | P a g e
Prepared By DcVargas
Computer Studies Department

2.GENERATE VARIABLE SQUARE WAVE GENERATOR USING 8253

CONFIGURATION
BINARY COUNTER,
MODE 3, R/W LSB FIRST THEN MSB
COUNTER 0

ADDRESSES
COUNTER 0---À 0D888
COUNTER 1---À 0D889
COUNTER 2---À 0D88A
CONTROL REGISTER ---À 0D88B
CONTROL WORD IS 36H

D7 D6 D5 D4 D3 D2 D1 D0

SC1 SC0 RW1 RW0 M2 M1 M0 BCD

0 0 1 1 0 1 1 0

3 6

98 | P a g e
Prepared By DcVargas
Computer Studies Department

PROGRAM
DATA SEGMENT
MESS DB 'ENTER THE FREQUENCY IN KHZ (01-65KHZ):','$'
DATA ENDS

CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
LEA DX, MESS
MOV AH, 09H
INT 21H
CALL READ
XOR AH, AH
MOV BX, 03E8H
MUL BX
MOV BX, AX
MOV DX, 001FH
MOV AX, 3E0CH
DIV BX
MOV BX, AX
MOV AL, 36H
MOV DX, 0D88BH
OUT DX, AL
MOV DX, 0D888H
MOV AL, BL
OUT DX, AL
MOV AL, BH
OUT DX, AL
MOV AH,4CH
INT 21H

READ PROC NEAR


PUBLIC READ
MOV AH, 01H
INT 21H
MOV DH, AL
SUB DH, 30H
MOV AH, 01H
INT 21H
MOV DL, AL
SUB DL, 30H
MOV AL, DH
MOV DH, 0AH
MUL DH
ADD AL, DL
RET
READ ENDP

CODE ENDS
END START

99 | P a g e
Prepared By DcVargas
Computer Studies Department

3.GENERATE SQUARE WAVE,SINE ,SAW,TRIANGULAR,STAIRCASE WAVEFORM


USING DAC INTERFACE

CONFIGURATION:
PORT A ----> OUTPUT, ADDRESS IS 0D880
PORT B ----> OUTPUT ADDRESS IS 0D881
PORT C LOW ---> OUTPUT ADDRESS IS D882
PORT C HIGH--> OUPTUT ADDRESS IS 0D882
CONTROL PORT ADDRESS IS 0D883S

CONTROL WORD IS 80

D7 D6 D5 D4 D3 D2 D1 D0

BSR or MODE PORT A PORT C MODE MODE PORT B PORT C


I/O FOR (UPPER) FOR FOR (LOWER)
MODE PORTA PORTA PORTB

1 0 0 0 0 0 0 0

8 0

PROGRAM :

DATA SEGMENT
MESS1 DB 0AH,0DH,' *****************************',0AH,0DH
DB ' 1) SQUARE WAVE',0AH,0DH
DB ' 2) TRIANGULAR WAVE', 0AH,0DH
DB ' 3) STAIRCASE WAVE',0AH,0DH
DB ' 4) SAWTOOTH WAVE',0AH,0DH
DB ' 5) SINE WAVE',0AH,0DH
DB ' ******************************************'
DB 0AH,0DH, ' ENTER THE CHOICE :','$'
MESS2 DB 0AH,0DH,'INVALID CHOICE','$'

SINTT DB 00H,00H,00H,00H,01H,02H,03H,04H,05H,06H,08H,09H,0BH,0DH,0FH
DB 11H,13H,16H,18H,1BH,1EH,21H,24H,27H,2AH,2EH,31H,34H,38H,3CH
DB 40H,44H,47H,4BH,50H,54H,58H,5CH,61H,65H,69H,6EH,72H,77H,7BH
DB 7FH,81H,88H,8DH,91H,96H,9AH,9EH,0A3H,0A7H,0ABH,0AFH,0B3H,0B7H
DB 0BBH,0BFH,0C3H,0C7H,0CAH,0CEH,0D1H,0D4H,0D8H,0DBH,0DEH,0E1H
DB 0E4H,0E7H,0E9H,0EBH,0EEH,0F2H,0F4H,0F6H,0F7H,0F9H,0FAH
DB 0FBH,0FCH,0FDH,0FEH,0FFH,0FFH,0FFH
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX

100 | P a g e
Prepared By DcVargas
Computer Studies Department

MOV AL,80H OUT DX,AL


MOV DX,0D883H CALL DELAYS
OUT DX,AL JMP LOOP1
LEA DX,MESS1 RET
MOV AH,09H SQWAVE ENDP
INT 21H
CALL READ TRWAVE PROC NEAR
CMP DL,01H PUBLIC TRWAVE
JNE L1
CALL SQWAVE T3: MOV CL,00H
JMP L6 MOV BL,0FFH
L1: CMP DL,02H T1:MOV AL,CL
JNE L2 MOV DX,0D880H
CALL TRWAVE OUT DX,AL
JMP L6 INC CL
L2:CMP DL,3H; SHOULD CMP CL,BL
BE CMP DL,03 NOT CALL DL,30H JC T1
JNE L3 T2:MOV AL,CL
CALL STCASE MOV DX,0D880H
JMP L6 OUT DX,AL
L3:CMP DL,04H DEC CL
JNE L4 JNZ T2
CALL SAWT JMP T3
JMP L6 RET
L4:CMP DL,05H TRWAVE ENDP
JNE L5
CALL SINWAVE STCASE PROC NEAR
JMP L6 PUBLIC STCASE
L5:LEA DX,MESS2 MOV AL,00H
MOV AH,09H S2: MOV DX,0D880H
INT 21H OUT DX,AL
L6: MOV AH,4CH CALL DELAYS
INT 21H ADD AL,40H
JMP S2
READ PROC NEAR RET
PUBLIC READ STCASE ENDP
MOV AH,01H
INT 21H SAWT PROC NEAR
MOV DL,AL PUBLIC SAWT
SUB DL,30H
RET N2: MOV AL,00H
READ ENDP MOV BL,02H
N1:;MOV AL,CL
SQWAVE PROC NEAR MOV DX,0D880H
PUBLIC SQWAVE OUT DX,AL
LOOP1: MOV AL,00H CALL DELAY
MOV DX,0D880H INC AL
OUT DX,AL CMP CL,BL
CALL DELAYS JNC N1
MOV AL,0FFH JMP N1
MOV DX,0D880H RET

101 | P a g e
Prepared By DcVargas
Computer Studies Department

SAWT ENDP MOV DI,0004H


G2:MOV BP,0FFFFH
SINWAVE PROC NEAR G1:DEC BP
PUBLIC SINWAVE JNZ G1
P3:LEA SI,SINTT DEC DI
P1:MOV AL,[SI] JNZ G2
MOV DX,0D880H RET
OUT DX,AL DELAYS ENDP
INC SI
CMP AL,0FFH
JNZ P1 DELAY PROC NEAR
P2:MOV AL,[SI] PUBLIC DELAY
MOV DX,0D880H MOV BP,0FFFFH
OUT DX,AL D1:DEC BP
DEC SI JNZ D1
CMP AL,00H RET
JNZ P2 DELAY ENDP
JMP P3
RET CODE ENDS
SINWAVE ENDP END START
DELAYS PROC NEAR END
PUBLIC DELAYS

102 | P a g e
Prepared By DcVargas
Computer Studies Department

4.TO TEST ALL THE GATES OF A GIVEN IC 74XX IS GOOD OR BAD

CONFIGURATION:
PORT A ----> OUTPUT, ADDRESS IS 0D880
PORT B ----> OUTPUT ADDRESS IS 0D881
PORT C LOW ---> OUTPUT ADDRESS IS D882
PORT C HIGH--> OUPTUT ADDRESS IS 0D882
CONTROL PORT ADDRESS IS 0D883

CONTROL WORD IS 80

D7 D6 D5 D4 D3 D2 D1 D0

BSR or MODE PORT A PORT C MODE MODE PORT B PORT C


I/O FOR (UPPER) FOR FOR (LOWER)
MODE PORTA PORTA PORTB

1 0 0 0 0 0 1 0

8 2

DATA SEGMENT
NANDTT DB 0FH,0FH,0FH,00H
ANDTT DB 00H,00H,00H,0FH
ORTT DB 00H,0FH,0FH,0FH
XORTT DB 00H,0FH,0FH,00H
MESS1 DB 0AH,0DH,'ENTER THE IC NUMBER (7400/7408/7432/7486):','$'
MESS2 DB 0AH,0DH,'IC IS GOOD.','$'
MESS3 DB 0AH,0DH,'IC IS BAD.','$'
MESS4 DB 0AH,0DH,'IC IS NOT MATCHING.','$'
DATA ENDS

CODE SEGMENT LEA BX,ANDTT


ASSUME CS:CODE,DS:DATA CALL TEST1
START:MOV AX,DATA JMP AHEAD
MOV DS,AX G2:CMP BX,7432H
LEA DX,MESS1 JNE G3
MOV AH,09H LEA BX,ORTT
INT 21H CALL TEST1
CALL READ JMP AHEAD
MOV BX,DX G3: CMP BX,7486H
CMP BX,7400H JNE G4
JNE G1 LEA BX,XORTT
LEA BX,NANDTT CALL TEST1
CALL TEST1 JMP AHEAD
JMP AHEAD G4: LEA DX,MESS4
G1: CMP BX,7408H MOV AH,09H
JNE G2 INT 21H

103 | P a g e
Prepared By DcVargas
Computer Studies Department

AHEAD: MOV AH,4CH INT 21H


INT 21H T3:RET

TEST1 PROC NEAR TEST1 ENDP


PUBLIC TEST1
MOV DX,0D883H READ PROC NEAR
MOV AL,82H PUBLIC READ
OUT DX,AL MOV CH,02H
MOV CL,04H AGAIN : MOV CL,04H
MOV CH,00H MOV AH,01H
T1:MOV AL,CH INT 21H
MOV DX,0D880H SHL AL,CL
OUT DX,AL MOV DL,AL
PUSH CX MOV AH,01H
MOV CX,0002H INT 21H
BACKRP: CALL DELAY AND AL,0FH
DEC CX OR DL,AL
JNZ BACKRP DEC CH
POP CX JZ NXT
MOV DX,0D881H MOV DH,DL
IN AL,DX JMP AGAIN
AND AL,0FH NXT:RET
CMP AL,[BX] READ ENDP
JNE T2 DELAY PROC NEAR
ADD CH,55H PUBLIC DELAY
INC BX MOV BP,0FFFFH
DEC CL D1: DEC BP
JNZ T1 JNZ D1
LEA DX,MESS2 RET
MOV AH,09H
INT 21H DELAY ENDP
JMP T3 CODE ENDS
T2: LEA DX,MESS3 END START
MOV AH,09H

104 | P a g e
Prepared By DcVargas

S-ar putea să vă placă și