Upload
manjesh-kumar-kakade
View
4.292
Download
13
Embed Size (px)
Citation preview
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 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 ADD BL,DL JNC NEXT INC 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
1 | P a g e
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 RETDISP ENDPCODE ENDSEND START
OUTPUT:ENTER FIRST NUMBER : E9ENTER SECOND NUMBER : FASUM OF TWO 8-BIT NUMBER IS : 1E3
ENTER FIRST NUMBER : ABENTER SECOND NUMBER : CDSUM OF TWO 8-BIT NUMBER IS : 178
2 | P a g e
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 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 ADD AL,DL DAA JNC NEXT INC 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
3 | P a g e
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 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 ENDPCODE ENDSEND START
4 | P a g e
OUTPUT:
ENTER FIRST NUMBER : 97ENTER SECOND NUMBER : 56SUM OF TWO 8-BIT NUMBER IS : 153
ENTER FIRST NUMBER : 82ENTER SECOND NUMBER : 19SUM OF TWO 8-BIT NUMBER IS : 101
5 | P a g e
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 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,00H ADD BX,DX JNC NEXT INC CL 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
6 | P a g e
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 DL,CL ADD DL,30H 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
7 | P a g e
DISP ENDPCODE ENDSEND START
OUTPUT:
ENTER FIRST NUMBER : 2345ENTER SECOND NUMBER : 5646SUM OF TWO 16-BIT NUMBER IS : 0798B
ENTER FIRST NUMBER : FFFFENTER SECOND NUMBER : AAAASUM OF TWO 16-BIT NUMBER IS : 1AAA9
8 | P a g e
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 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,00H MOV AL,BL ADD AL,DL DAA MOV BL,AL MOV AL,BH ADC AL,DH DAA JNC NEXT INC CL NEXT:MOV BH,AL 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
9 | P a g e
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 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 ADD DL,30H 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
10 | P a g e
INT 21H DEC CH JZ L4 MOV BH,BL JMP L3 L4:RET
DISP ENDPCODE ENDSEND START
OUTPUT:ENTER FIRST NUMBER : 6987ENTER SECOND NUMBER : 3991SUM OF TWO 16-BIT NUMBER IS : 10978
ENTER FIRST NUMBER : 9999ENTER SECOND NUMBER : 8888SUM OF TWO 16-BIT NUMBER IS : 18887
11 | P a g e
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
12 | P a g e
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 ENDPCODE ENDSEND START
13 | P a g e
OUTPUT:
ENTER FIRST NUMBER : 55ENTER SECOND NUMBER : AASUBTRACTION OF TWO 8-BIT NUMBER IS : -55
ENTER FIRST NUMBER : FAENTER SECOND NUMBER : 93SUBTRACTION OF TWO 8-BIT NUMBER IS : -67
14 | P a g e
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
15 | P a g e
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
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
16 | P a g e
DISP ENDPCODE ENDSEND START
OUTPUT:
ENTER FIRST NUMBER : 98ENTER SECOND NUMBER : 54SUBTRACTION OF TWO 8-BIT NUMBER IS : 044
ENTER FIRST NUMBER : 87ENTER SECOND NUMBER : 98SUBTRACTION OF TWO 8-BIT NUMBER IS : -11
17 | P a g e
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,DATAMOV DS,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BX,DXLEA DX,MESS2MOV AH,09HINT 21HCALL READMOV CL,' 'SUB BX,DXMOV CL,00HJNC NEXTINC CLMOV CL,'-'NEG BX
NEXT: CALL DISPMOV AH,4CHINT 21H
READ PROC NEARPUBLIC READ
MOV CH,02H R3: MOV AH,01H
INT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07H
R1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30H
18 | P a g e
CMP AL,0AHJC R2SUB AL,07H
R2: AND AL,0FHOR DL,ALDEC CHJZ R4MOV DH,DLJMP R3R4:RET
READ ENDP
DISP PROC NEARPUBLIC DISP
LEA DX,MESS3MOV AH,09HINT 21HMOV DL,CLMOV AH,06HINT 21HMOV CH,02H
L3:MOV CL,04HMOV DL,BHSHR DL,CLCMP DL,0AHJC L1ADD DL,07H
L1:ADD DL,30HMOV AH,06HINT 21HAND BH,0FHCMP BH,0AHJC L2ADD BH,07H
L2:ADD BH,30HMOV DL,BHMOV AH,06HINT 21HDEC CHJZ L4MOV BH,BLJMP L3L4:RET DISP ENDP
CODE ENDSEND START
19 | P a g e
OUTPUT:ENTER FIRST NUMBER : DE32ENTER SECOND NUMBER : 97CASUBTRACTION OF TWO 8-BIT NUMBER IS : 04668
ENTER FIRST NUMBER : 698FENTER SECOND NUMBER : B2C6SUBTRACTION OF TWO 8-BIT NUMBER IS : -4937
20 | P a g e
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,DATAMOV DS,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BX,DXLEA DX,MESS2MOV AH,09HINT 21HCALL READMOV AX,BXMOV CL,' 'MOV AL,BLSUB AL,DLDASMOV BL,ALMOV AL,BHSBB AL,DHDASMOV BH,ALJNC NEXTMOV AX,0000HSUB AL,BLADD DL,01HDASMOV BL,ALMOV AL,AHSBB AL,BHDASMOV BH,ALMOV CL,'-'NEXT: CALL DISPMOV AH,4CHINT 21H
21 | P a g e
READ PROC NEAR PUBLIC READ
MOV CH,02HR3: MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,ALDEC CHJZ R4MOV DH,DLJMP R3R4:RET
READ ENDP
DISP PROC NEAR PUBLIC DISP
LEA DX,MESS3MOV AH,09HINT 21HMOV DL,CLMOV AH,06HINT 21HMOV CH,02HL3:MOV CL,04HMOV DL,BHSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1:ADD DL,30HMOV AH,06H
22 | P a g e
INT 21H AND BH,0FH
CMP BH,0AH JC L2 ADD BH,07HL2: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 ENDSEND START
OUTPUT:
ENTER FIRST NUMBER : 9873ENTER SECOND NUMBER : 8642SUBTRACTION OF TWO 8-BIT NUMBER IS : 01231
ENTER FIRST NUMBER : 2431ENTER SECOND NUMBER : 9247SUBTRACTION OF TWO 8-BIT NUMBER IS : -6816
23 | P a g e
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
24 | P a g e
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 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 ENDPCODE ENDSEND START
25 | P a g e
OUTPUT:
ENTER FIRST NUMBER : 01ENTER SECOND NUMBER : 01PRODUCT IS : 0001
ENTER FIRST NUMBER : 0AENTER SECOND NUMBER : 0APRODUCT IS : 0064
26 | P a g e
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,DATAMOV DS,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BX,DXLEA DX,MESS2MOV AH,09HINT 21HCALL READMOV AX,BXMUL DXMOV BX,DXMOV SI,AXCALL DISPMOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV CH,02HR3: MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01H
27 | P a g e
INT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,ALDEC CHJZ R4MOV DH,DLJMP R3R4: RET
READ ENDP
DISP PROC NEAR PUBLIC DISP
LEA DX,MESS3MOV AH,09HINT 21HMOV CH,04HMOV CL,04HL3: MOV DL,BHSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1: ADD DL,30HMOV AH,06HINT 21HAND BH,0FHCMP BH,0AHJC L2ADD BH,07HL2:ADD BH,30HMOV DL,BHMOV AH,06HINT 21HDEC CHJZ L4MOV BH,BLCMP CH,03HJNZ L5MOV DX,SIL5:MOV BL,DHMOV DH,DLJMP L3
28 | P a g e
L4:RET
DISP ENDP CODE ENDS END START
OUTPUT
ENTER FIRST NUMBER : F4D9ENTER SECOND NUMBER : 6A52PRODUCT OF TWO NUMBERS : 65B04782
ENTER FIRST NUMBER : 23CDENTER SECOND NUMBER : 542EPRODUCT OF TWO NUMBERS : 0BC5B2D6
29 | P a g e
10. 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
30 | P a g e
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 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
31 | P a g e
CODE ENDS END START
OUTPUT:
ENTER THE DIVIDEND : D1ENTER THE DIVISOR : B2DIVISION : 01.00
ENTER THE DIVIDEND : A2ENTER THE DIVISOR : 13DIVISION : 08.00
32 | P a g e
11. 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
33 | P a g e
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 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 21HBACK:MOV DL,BL SHR DL,CL CMP DL,0AH JC L3
34 | P a g e
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 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 : 6543ENTER THE DIVISOR : 1234DIVISION : 0005.90
ENTER THE DIVIDEND : FFFFENTER THE DIVISOR : CCCCDIVISION : 0001.40
35 | P a g e
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
36 | P a g e
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 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
37 | P a g e
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: 05ENTER THE NUMBERS: 34,65,24,87,45THE AVERAGE IS : 4E.99
38 | P a g e
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
39 | P a g e
N2:MOV CH,02H MOV DL,DH MOV DH,00H MOV CL,00H N4: MOV AX,BX SUB AL,DL DAS MOV BL,AL MOV AL,BH SBB AL,00H DAS MOV BH,AL MOV AL,CL ADD AL,01H DAA MOV CL,AL CMP BX,DX JAE N4 DEC CH JZ N5 MOV QUO,CL MOV CL,00H MOV BH,BL JMP N4 N5: MOV BL,QUO MOV BH,CL CALL DISP MOV AH,4CH INT 21HREAD PROC NEARPUBLIC READ
MOV AH,01H INT 21H MOV CL,04H SHL AL,CL MOV DL,AL MOV AH,01H INT 21H AND AL,0FH OR DL,AL RET
READ ENDP
DISP PROC NEAR
40 | P a g e
PUBLIC DISP
LEA DX,MESS3 MOV AH,09H INT 21H MOV CH,02H LOP: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 DEC CH JZ RT CMP CH,01H JNZ L3 MOV DL,'.' MOV AH,06H INT 21H L3:MOV BL,BH JMP LOP RT:RET
DISP ENDP
CODE ENDS END START
OUPTUT:
ENTER THE LIMIT: 05ENTER THE NUMBERS: 34,45,56,67,78THE AVERAGE IS : 56
41 | P a g e
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
42 | P a g e
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 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
43 | P a g e
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: 23ABCFENTER FIRST NUMBER:F45C24SUM OF TWO NUMBERS:11807F3
ENTER FIRST NUMBER: 111111ENTER FIRST NUMBER:222222SUM OF TWO NUMBERS:0333333
44 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV SI,DXMOV BH,BLLEA DX,MESS2MOV AH,09HINT 21HCALL READMOV CL,00HADD AL,DLDAAMOV DL,ALMOV AL,AHADC BH,BLMOV DH,DLMOV SI,DXADC BH,BLMOV AL,BHDAAMOV BH,ALJNC NEXINC CLNEXT: CALL DISPMOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ MOV CH,03H X1:MOV AH,01H INT 21H
45 | P a g e
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 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
46 | P a g e
LAST :RET
DISP ENDP CODE ENDS END START
OUTPUT:ENTER FIRST NUMBER: 234567ENTER FIRST NUMBER:954132SUM OF TWO NUMBERS:1188699
ENTER FIRST NUMBER: 111111ENTER FIRST NUMBER:222222SUM OF TWO NUMBERS:0333333
17.TO FIND MAXIMUM AND MINIMUM OF GIVEN NUMBERS.
47 | P a g e
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
48 | P a g e
MOV BH,BL 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 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
49 | P a g e
RET
DISP ENDP CODE ENDS END START
OUTPUT:
ENTER LIMIT : 05ENTER NUMBERS : 22, 78, 96, 30, 12MAXIMUM IS : 96MINIMUM IS : 12
ENTER LIMIT : 07ENTER NUMBERS : 32,12,F4,09,67,F5,8DMAXIMUM IS : F5MINIMUM IS : 09
18. SORTING OF ‘N’NUMBERS
50 | P a g e
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
51 | P a g e
DEC BH JNZ L2 LEA SI,ARRAY MOV BX,DI L5:CALL DISP INC SI DEC BH JNZ L5 MOV AX,4C00H INT 21HREAD PROC NEARPUBLIC READ
MOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R1SUB AL,07HR1:MOV CL,04HSHL AL,CLMOV CH,ALMOV AH,01HINT 21HSUB AL,30HCMP AL, 0AHJC R2SUB AL,07HAND AL,0FHR2:OR CH,ALMOV DL,' 'MOV AH,06HINT 21HRET
READ ENDP
DISP PROC NEAR PUBLIC DISP MOV CL,04H
MOV BL,[SI]MOV DL,BLSHR DL,CLCMP DL,0AHJC X1ADD DL,07HX1:ADD DL,30H
52 | P a g e
MOV AH,06HINT 21HAND BL,0FHCMP BL,0AHJC X2ADD BL,07HX2:ADD BL,30HMOV DL,BLMOV AH,06HINT 21HMOV DL,' 'MOV AH,06HINT 21HRET
DISP ENDPCODE ENDSEND START
OUTPUT:
ENTER THE LIMIT : 05THE NO IS : 65 41 37 82 04THE SORTED NUMBERS ARE : 04 37 41 65 82
ENTER THE LIMIT : 06THE NO IS : 23 ,06,14,98,67,25THE SORTED NUMBERS ARE : 06,14,23,25,67,98
19.ADDITION OF TWO MATRICES (HEXADECIMAL)
53 | P a g e
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
54 | P a g e
LEA SI,MAT2 CALL READ1 MESSAGE M5 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 NEARPUBLIC READ1
55 | P a g e
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,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL, 0AHJC R2SUB AL,07HAND AL,0FHR2:OR DL,ALRET
READ ENDP
DISP PROC NEAR PUBLIC DISP LEA BX,MAT3 MOV CH,ROW D4:MOV DH,COL LOP:MOV CL,04H MOV DL,[BX]
56 | P a g e
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 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:
57 | P a g e
ENTER THE ORDER OF FIRST MATRIX : 2 2
ENTER THE ORDER OF SECOND MATRIX : 2 2
ENTER THE ELEMENTS OF FIRST MATRIX:11 1111 11
ENTER THE ORDER OF SECOND MATRIX02 0202 02
SUM OF TWO MATRICES:013 013014 014
OUTPUT 2:ENTER THE ORDER OF FIRST MATRIX : 2 3
ENTER THE ORDER OF SECOND MATRIX : 2 2
MATRICES CANNOT BE ADDED
20.ADDITION OF TWO MATRICES (BCD)
58 | P a g e
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 00HCOL 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
59 | P a g e
CALL READ1 MESSAGE M5 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
60 | P a g e
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,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HSHL DL,CLMOV AH,01HINT 21HAND AL,0FHOR DL,ALRET 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,06HINT 21HINC BXMOV CL,04HMOV DL,[BX]SHR DL,CL
61 | P a g e
ADD DL,30HMOV AH,06HINT 21HMOV DL,[BX]AND DL,0FHADD DL,30HMOV AH,06HINT 21HINC BXBSPCE ' 'DEC DHJNZ LOPDEC CHJZ D3BSPCE 0AHBSPCE 0DHJMP D4D3: 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 1315 14
ENTER THE ORDER OF SECOND MATRIX02 0202 02
SUM OF TWO MATRICES:014 016017 016
21. SUBTRACTION OF TWO MATRICES (HEXADECIMAL)
DATA SEGMENT
62 | P a g e
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 00HCOL 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
63 | P a g e
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
64 | P a g e
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,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HAND DL,0FHR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL, 0AHJC R2SUB AL,07HAND AL,0FHR2:OR DL,ALRET
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
65 | P a g e
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] 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
66 | P a g e
ENTER THE ORDER OF SECOND MATRIX : 2 2
ENTER THE ELEMENTS OF FIRST MATRIX:
55 6575 85
ENTER THE ORDER OF SECOND MATRIX02 0202 02
DIFFERENCE OF TWO MATRICES:053 063073 083
OUTPUT
ENTER THE ORDER OF FIRST MATRIX : 2 2
ENTER THE ORDER OF SECOND MATRIX : 2 3
MATRICES CANNOT BE SUBTRACTED
22. SUBTRACTION OF TWO MATRICES (BCD)
67 | P a g e
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 00HCOL 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,AXMESSAGE M1CALL READOMOV BX,DXMOV ROW,DHMOV COL,DLMESSAGE M2CALL READOCMP BX,DXJZ L1MESSAGE M6JMP L7L1:MESSAGE M3LEA SI,MAT1CALL READ1MESSAGE M4LEA SI,MAT2
68 | P a g e
CALL READ1MESSAGE M5BSPCE 0AHLEA DI,MAT1LEA SI,MAT2LEA BX,MAT3MOV CH,ROWL6:MOV CL,COLL2:MOV DH,' 'MOV AL,[DI]SUB AL,[SI]DASJNC L5MOV DL,99HSUB DL,ALMOV AL,DLADD AL,01HDAAMOV DH,'-'L5:MOV [BX],DHINC BXMOV [BX],ALINC DIINC SIINC BXDEC CLJNZ L2DEC CHJZ L3JMP L6L3: CALL DISPL7: MOV AH,4CHINT 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
69 | P a g e
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,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HSHL DL,CLMOV AH,01HINT 21HAND AL,0FHOR DL,ALRET
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
70 | P a g e
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 ' ' 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 1010 10
ENTER THE ORDER OF SECOND MATRIX02 0202 02
DIFFERENCE OF TWO MATRICES:08 0808 08
23.TRANSPOSE OF THE MATRIX
71 | P a g e
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,AXMESSAGE M1CALL READOMOV BX,DXMOV ROW,DHMOV COL,DLMESSAGE M2LEA SI,MAT1CALL READ1LEA DI,MAT1LEA SI,MAT2MOV DH,00HMOV DL,COLMOV AH,COLL3:MOV AL,ROWMOV BX,DIL1:MOV CL,[BX]MOV [SI],CLADD BX,DXINC SIDEC AL
72 | P a g e
JNZ L1INC DIDEC AHJNZ L3LEA SI,MAT2CALL DISPMOV AH,4CHINT 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 JNZ N1 DEC CH JZ N3 BSPCE 0AH BSPCE 0DH JMP N2 N3:RET READ1 ENDP
READ PROC NEAR PUBLIC READ
73 | P a g e
MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HAND DL,0FHR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL, 0AHJC R2SUB AL,07HAND AL,0FHR2:OR DL,ALRET
READ ENDP
DISP PROC NEAR PUBLIC DISP
MESSAGE M3BSPCE 0AHMOV DH,COLD4:MOV BH,ROWLOP:MOV CL,04HMOV DL,[SI]SHR DL,CLCMP DL,0AHJC D1ADD DL,07HD1: ADD DL,30HMOV AH,06HINT 21HMOV DL,[SI]AND DL,0FHCMP DL,0AHJC D2ADD DL,07HD2: ADD DL,30HMOV AH,06HINT 21H
74 | P a g e
INC SIBSPCE ' 'DEC BHJNZ LOPDEC DHJZ D3BSPCE 0AHBSPCE 0DHJMP 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 9922 74 51
TRANSPOSE MATRIX :11 2255 7499 51
24.GENERATION OF PRIME NUMBERS(HEXADECIMAL)
DATA SEGMENT
75 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV CH,DLLEA DX,MESS2MOV AH,09HINT 21HXOR SI,SIMOV DH,00HL1: INC DHJZ L3CMP DH,CHJA L3CALL SQRTMOV BH,01HL2:MOV AL,DHMOV AH,00HINC BHCMP BH,DLJA L4DIV BHCMP AH,00HJNZ L2JMP L1L4:MOV BL,DHCALL DISPMOV DL,','MOV AH,06HINT 21HINC SIJMP L1L3:LEA DX,MESS3MOV AH,09HINT 21HMOV BX,SICALL DISP
76 | P a g e
MOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HAND AL,0FHR2: OR DL,ALRET
READ ENDP DISP PROC NEAR PUBLIC DISP
MOV CL,04HMOV DL,BLSHR DL,CLCMP DL,0AHJC N1ADD DL,07HN1: ADD DL,30HMOV AH,06HINT 21HAND BL,0FHCMP BL,0AHJC N2ADD BL,07HN2:ADD BL,30HMOV DL,BLMOV AH,06HINT 21HRET
DISP ENDP
77 | P a g e
SQRT PROC NEAR PUBLIC DISP 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 : 0FPRIME NUMBERS UPTO LIMIT : 01,02,03,05,07,0B,0DNO. OF ELEMENTS IN PRIME SERIES : 07
25.GENERATION OF PRIME NUMBERS (BCD)
DATA SEGMENT
78 | P a g e
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:DATASTART: MOV AX,DATA
MOV DS,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV CH,DLLEA DX,MESS2MOV AH,09HINT 21HMOV DH,00HMOV SI,0000HL1:MOV AL,DHADD AL,01HDAAJC L3MOV DH,ALCMP DH,CHJA L3CALL SQRTMOV BH,01HL2:MOV AL,BHADD AL,01HDAAMOV BH,ALCMP BH,DLJA L4MOV AH,00HMOV NUM,DHL5:MOV AL,NUMSUB AL,BHDASMOV NUM,ALMOV AL,AH
ADD AL,01HDAAMOV AH,ALCMP NUM,BH
79 | P a g e
JAE L5CMP NUM,00HJZ L1JMP L2L4: MOV BL,DHCALL DISPMOV DL,'.'MOV AH,06HINT 21HMOV AX,SIADD AL,01HDAAMOV SI,AXJMP L1L3:LEA DX,MESS3MOV AH,09HINT 21HMOV BX,SICALL DISPMOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV AH,01HINT 21HMOV DL,ALMOV CL,04HSUB DL,30HSHL DL,CLMOV AH,01HINT 21HSUB AL,30HOR DL,ALRET
READ ENDP DISP PROC NEAR PUBLIC DISP
MOV CL,04H MOV DL,BL SHR DL,CL ADD DL,30H MOV AH,06H INT 21H
80 | P a g e
AND BL,0FH ADD BL,30H MOV DL,BL MOV AH,06H INT 21H 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 : 09PRIME NUMBERS UPTO LIMIT : 01,02,03,05,07NO. OF ELEMENTS IN PRIME SERIES : 05
26.GENERATION OF PERFECT DIVIDING NUMBERS(HEXADECIMAL)
DATA SEGMENT MESS1 DB 'ENTER THE LIMIT :','$'
81 | P a g e
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
82 | P a g e
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 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
83 | P a g e
MOV DL,BL MOV AH,06H INT 21H RET DISP ENDP
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 : FFPERFECT DIVISORS ARE: 06 1CNO. OF ELEMENTS : 02
27.GENERATION OF PERFECT DIVIDING NUMBERS(HEXADECIMAL)
DATA SEGMENT
84 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READLEA DX,MESS2MOV AH,09HINT 21HXOR DI,DICALL PERFECTLEA DX,MESS3MOV AH,09HINT 21HMOV CX,DIMOV BL,CLCALL DISPMOV AH,4CHINT 21H
PERFECT PROC NEARPUBLIC PERFECT
MOV BL,01HP1:CMP BH,BLJA P3RETP3: CALL SQRTMOV DL,01HMOV CH,CLMOV CL,02HP4: CMP CH,CLJC P5MOV AH,BLXOR DH,DHCALL DIVDCMP AH,00HJNZ P7MOV AL,DL
85 | P a g e
ADD AL,DHDAAADD AL,CLDAAMOV DL,ALP7: MOV AL,CLADD AL,01HDAAMOV CL,ALJMP P4P5: CMP DL,01HJE P6CMP BL,DLJNE P6CALL DISPMOV AX,DIADD AL,01HDAAMOV DI,AXP6: MOV AL,BLADD AL,01HDAAMOV BL,ALJMP P1
PERFECT ENDP
SQRT PROC NEARPUBLIC SQRT
MOV CL,01HB3: XOR DH,DHMOV AH,BLMOV AL,CLADD AL,01HDAAMOV CL,ALCALL DIVDCMP DH,CLJAE B3MOV AL,CLSUB AL,01HDASMOV CL,ALRET
SQRT ENDP
DIVD PROC NEAR
86 | P a g e
PUBLIC DIVDB1: CMP AH,CLJB B2MOV AL,AHSUB AL,CLDASMOV AH,ALMOV AL,DHADD AL,01HDAAMOV DH,ALJMP B1B2:RET
DIVD ENDP
READ PROC NEAR PUBLIC READ
MOV AH,01HINT 21HMOV BH,ALSUB BH,30HMOV CL,04HSHL BH,CLMOV AH,01HINT 21HSUB AL,30HOR BH,ALRET
READ ENDP
DISP PROC NEAR PUBLIC DISP
MOV AH,BLMOV DL,AHMOV CL,04HSHR AH,CLADD AH,30HMOV DL,AHMOV AH,06HINT 21HMOV AH,BLAND AH,0FHADD AH,30HMOV DL,AHMOV AH,06HINT 21H
87 | P a g e
MOV DL,' 'MOV AH,06HINT 21HRET
DISP ENDP
CODE ENDSEND START
OUTPUT:
ENTER LIMIT : 99PERFECT DIVISORS ARE: 06 28NO. OF ELEMENTS : 02
ENTER LIMIT : 20PERFECT DIVISORS ARE: 06 NO. OF ELEMENTS : 01
27.GENERATION OF FIBONACCI SERIES (HEXADECIMAL)
DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE LIMIT:''$'MESS2 DB 0AH,0DH,'FIBONACCI SERIES UPTO THE LIMIT ','$'
88 | P a g e
MESS3 DB 0AH,0DH,'THE NUMBER OF ELEMENTS IN FIBONACCI SERIES IS: ','$'MESS4 DB 'IS: ','$'TEMP DB 01HCOUNT 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
89 | P a g e
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
90 | P a g e
INT 21H RET
DISP ENDP CODE ENDS END START
OUTPUT
ENTER THE LIMIT: AAFIBONACCI SERIES UPTO THE LIMIT AA IS : 00 01 01 02 03 05 08 0D 15 22 37 59 90NUMBERS OF ELEMENTS IN FIBONACCI SERIES : 13
28.GENERATION OF FIBONACCI SERIES (BCD)
DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE LIMIT:''$'
91 | P a g e
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 01HCOUNT DB 00H
DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA
MOV DS,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV CH,DLLEA DX,MESS2MOV AH,09HINT 21HCALL READMOV BL,CHCALL DISPLEA DX,MESS4MOV AH,09HINT 21HXOR BX,BXAGAIN: INC COUNTCALL DISPADD TEMP,BHJC NEXTMOV BL,TEMPMOV TEMP,BHMOV BH,BLCMP BL,CHJA NEXTJMP AGAINNEXT:LEA DX,MESS3MOV AH,09HINT 21HMOV AL,COUNTADD AL,00HDAAMOV BL,ALCALL DISPMOV AH,4CHINT 21H
92 | P a g e
READ PROC NEAR PUBLIC READ
MOV CL,04HMOV AH,01HINT 21HMOV DL,ALMOV CL,04HSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,ALRET
READ ENDP
DISP PROC NEAR PUBLIC DISP
MOV DL,' 'MOV AH,06HINT 21HMOV DL,BLSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1: ADD DL,30HMOV AH,06HINT 21HAND BL,0FHCMP BL,0AHJC L2ADD BL,07HL2: ADD BL,30HMOV DL,BLMOV AH,06HINT 21H
93 | P a g e
RET DISP ENDP CODE ENDS END START
OUTPUT:
ENTER LIMIT : FFPERFECT DIVISORS ARE: 06 1CNO. OF ELEMENTS IN PRIME SERIES : 02
ENTER THE LIMIT: 08THE FIBONACCI SERIES UPTO THE LIMIT 09 IS: 00,01,01,02,03,05,08NUMBERS OF ELEMENTS IN THE FIBONACCI SERIES:07
29.GENERATION OF FIBONACCI SERIES (BCD)
DATA SEGMENT
MESS1 DB 0AH,0DH,'ENTER THE LIMIT:''$'
94 | P a g e
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 01HCOUNT DB 00H
DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA
MOV DS,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV CH,DLLEA DX,MESS2MOV AH,09HINT 21HCALL READMOV BL,CHCALL DISPLEA DX,MESS4MOV AH, 09HINT 21HXOR BX,BX
AGAIN: INC COUNTCALL DISPMOV AL,TEMPADD AL,BHDAAJC NEXTMOV BL,ALMOV TEMP,BHMOV BH,BLCMP BL,CHJA NEXTJMP AGAIN
NEXT:LEA DX,MESS3MOV AH,09HINT 21HMOV AL,COUNTADD AL,00HDAAMOV BL,ALCALL DISP
95 | P a g e
MOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READMOV CL,04HMOV AH,01HINT 21HSHL AL,CLMOV DL,ALMOV AH,01HINT 21H AND AL,0FHOR DL,ALRET
READ ENDP DISP PROC NEAR PUBLIC DISP
MOV DL,' 'MOV AH,06HINT 21HMOV DL,BLSHR DL,CLADD DL,30HMOV AH,06HINT 21HAND BL,0FHADD BL,30HMOV DL,BLMOV AH,06HINT 21HRET
DISP ENDP CODE ENDS END START
OUTPUT
ENTER THE LIMIT: 99FIBONACCI SERIES UPTO THE LIMIT 99 IS : 00 01 01 02 03 05 08 13 21 34 55 89NUMBER OF ELEMENTS IN THE FIBONACCI SERIES :12
30.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=''$'
96 | P a g e
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 NEARPUBLIC DISP LEA DX,MESS2 MOV AH,09H INT 21H MOV CL,04H MOV CH,02H BACK:MOV DL,BH
97 | P a g e
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> : 7FACTORIAL OF THE GIVEN NUMBER : 13B0
ENTER THE NO<0-8> : 5FACTORIAL OF THE GIVEN NUMBER : 0078
31. CONVERSION FROM BINARY TO GRAY ( HEXADECIMAL )
98 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BL,DLSHR DL,01HXOR BL,DLLEA DX,MESS2MOV AH,09HINT 21HCALL DISPMOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,ALRET
READ ENDP
DISP PROC NEAR
99 | P a g e
PUBLIC DISPMOV CL,04HMOV DL,BLSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1:ADD DL,30HMOV AH,06HINT 21HAND BL,0FHCMP BL,0AHJC L2ADD BL,07HL2:ADD BL,30HMOV DL,BLMOV AH,06HINT 21HRET DISP ENDP
CODE ENDSEND START
OUTPUT:
ENTER BINARY CODE: 10EQUIVALENT GRAY CODE: 18
ENTER BINARY CODE: 80EQUIVALENT GRAY CODE: C0
ENTER BINARY CODE: F0EQUIVALENT GRAY CODE: 88
32.CONVERSION FROM GRAY CODE TO BINARY CODE(HEXADECIMAL)
100 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BL,DLMOV CH,07HM1:SHR DL,01HXOR BL,DLDEC CHJNZ M1LEA DX,MESS2MOV AH,09HINT 21HCALL DISPMOV AH,4CHINT 21H
READ PROC NEAR
PUBLIC READ
MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,AL
101 | P a g e
RETREAD ENDP
DISP PROC NEAR PUBLIC DISP
MOV CL,04HMOV DL,BLSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1:ADD DL,30HMOV AH,06HINT 21HAND BL,0FHCMP BL,0AHJC L2ADD BL,07HL2:ADD BL,30HMOV DL,BLMOV AH,06HINT 21HRET
DISP ENDPCODE ENDSEND START
OUTPUT:
ENTER GRAY CODE: ‘21EQUIVALENT BINARY CODE: ‘3E
ENTER GRAY CODE: 80EQUIVALENT BINARY CODE: FF
33.CONVERSION OF ARRAY OF BINARY CODE TO GRAY CODE(HEXADECIMAL)
DATA SEGMENT
102 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BH,DLLEA DX,MESS2MOV AH,09HINT 21HM1:LEA DX,NLMOV AH,09HINT 21HCALL READMOV BL,DLSHR DL,01HXOR BL,DLLEA DX,BSPMOV AH,09HINT 21HCALL DISPDEC BHJNZ M1MOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30H
103 | P a g e
CMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,ALRET
READ ENDP DISP PROC NEAR PUBLIC DISP
MOV CL,04HMOV DL,BLSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1:ADD DL,30HMOV AH,06HINT 21HAND BL,0FHCMP BL,0AHJC L2ADD BL,07HL2:ADD BL,30HMOV DL,BLMOV AH,06HINT 21HRET
DISP ENDP
CODE ENDSEND START
OUTPUT:ENTER LIMIT : 05BINARY CODE GRAY CODE 3E 21 21 31 16 1D 10 18 02 03
34. CONVERSION OF ARRAY OF GRAYCODE TO BINARY CODE(HEXADECIMAL)
DATA SEGMENT
104 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BH,DLLEA DX,MESS2MOV AH,09HINT 21HM2:LEA DX,NLMOV AH,09HINT 21HCALL READMOV BL,DLMOV CH,07HM1: SHR DL,01HXOR BL,DLDEC CHJNZ M1LEA DX,BSPMOV AH,09HINT 21HCALL DISPDEC BHJNZ M2MOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CL
105 | P a g e
MOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,ALRET
READ ENDP DISP PROC NEAR PUBLIC DISP
MOV CL,04HMOV DL,BLSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1:ADD DL,30HMOV AH,06HINT 21HAND BL,0FHCMP BL,0AHJC L2ADD BL,07HL2:ADD BL,30HMOV DL,BLMOV AH,06HINT 21H
RET DISP ENDP
CODE ENDSEND START
OUTPUT:ENTER LIMIT : 05GRAY BINARY 03 02 14 18 21 3E C2 83 A5 C6
35.GCD OF TWO 8-BIT HEXADECIMAL NUMBERS.
106 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BH,DLLEA DX,MESS2MOV AH,09HINT 21HCALL READMOV BL,DLT1:MOV AL,BHMOV AH,00HDIV BLMOV BH,BLMOV BL,AHCMP AH,00HJNE T1CALL DISPMOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2
107 | P a g e
SUB AL,07HR2: AND AL,0FHOR DL,ALRET
READ ENDP
DISP PROC NEAR PUBLIC DISP
LEA DX,MESS3MOV AH,09HINT 21HMOV CL,04HMOV DL,BHSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1: ADD DL,30HMOV AH,06HINT 21HAND BH,0FHCMP BH,0AHJC L2ADD BH,07HL2:ADD BH,30HMOV DL,BHMOV AH,06HINT 21HRET
DISP ENDP CODE ENDS END START
OUTPUT:
ENTER FIRST NUMBER : 0AENTER SECOND NUMBER : 05GCD OF TWO NUMBER IS : 05
ENTER FIRST NUMBER : 0CENTER SECOND NUMBER : 06GCD OF TWO NUMBER IS : 06
36.GCD OF TWO 8-BIT NUMBERS(BCD).
108 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BH,DLLEA DX,MESS2MOV AH,09HINT 21HCALL READMOV BL,DLN1:CMP BH,BLJZ N3JNB N2MOV AL,BLSUB AL,BHDASMOV BL,ALJMP N1N2:MOV AL,BHSUB AL,BLDASMOV BH,ALJMP N1N3:CALL DISPMOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1
109 | P a g e
SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,ALRET
READ ENDP
DISP PROC NEAR PUBLIC DISP
LEA DX,MESS3MOV AH,09HINT 21HMOV CL,04HMOV DL,BHSHR DL,CLADD DL,30HMOV AH,06HINT 21HAND BH,0FHADD BH,30HMOV DL,BHMOV AH,06HINT 21HRET
DISP ENDP CODE ENDS END START
OUTPUT:
ENTER FIRST NUMBER : ‘08ENTER SECOND NUMBER : ‘12GCD OF TWO NUMBER IS : ‘04
ENTER FIRST NUMBER : ‘09ENTER SECOND NUMBER : ‘06GCD OF TWO NUMBER IS : ‘03
37.REVERSE OF A BYTE
110 | P a g e
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:DATASTART: MOV AX,DATA MOV DS,AX
LEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BL,00HMOV CH,08HN1: SHL DL,01HRCR BL,01HDEC CHJNZ N1CALL DISPMOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV CL,04HMOV DL,' 'MOV AH,06HINT 21HMOV AH,01HINT 21HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,AL
111 | P a g e
RETREAD ENDP
DISP PROC NEAR PUBLIC DISP
LEA DX,MESS2MOV AH,09HINT 21HMOV CL,04HMOV DL,BLSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1: ADD DL,30HMOV AH,06HINT 21HAND BL,0FHCMP BL,0AHJC L2ADD BL,07HL2:ADD BL,30HMOV DL,BLMOV AH,06HINT 21HRET DISP ENDP
CODE ENDS
END START
OUTPUT:
ENTER THE NUMBER : 12REVERSE OF GIVEN BYTE: 48
ENTER THE NUMBER:F8REVERSE OF GIVEN BYTE:1F
38.REVERSAL OF WORD
112 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV BX,DXMOV BX,0000HMOV CH,10HN1: SHL DX,01HRCR BX,01HDEC CHJNZ N1CALL DISPMOV AH,4CHINT 21H
READ PROC NEAR PUBLIC READ
MOV CH,02HR3:MOV AH,01HINT 21HMOV CL,04HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HR2: AND AL,0FHOR DL,ALDEC CHJZ R4MOV DH,DL
113 | P a g e
JMP R3R4: RET
READ ENDP DISP PROC NEAR PUBLIC DISP
LEA DX,MESS2MOV AH,09HINT 21HMOV CH,02HL3:MOV CL,04HMOV DL,BHSHR DL,CLCMP DL,0AHJC L1ADD DL,07HL1: ADD DL,30HMOV AH,06HINT 21HAND BH,0FHCMP BH,0AHJC L2ADD BH,07HL2:ADD BH,30HMOV DL,BH
MOV AH,06HINT 21HDEC CHJZ L4MOV BH,BLJMP L3L4:RET
DISP ENDPCODE ENDS
END START
OUTPUT:ENTER THE NUMBER: F4C9REVERSE OF THE GIVEN WORD:932F
ENTER THE NUMBER: B27AREVERSE OF THE GIVEN WORD:5E4D
39.REVERSAL OF AN ARRAY
114 | P a g e
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,AXLEA DX,MESS1MOV AH,09HINT 21HCALL READMOV CH,DLLEA DX,MESS2MOV AH,09HINT 21HMOV DH,CHLEA BX,NUML1:CALL READMOV [BX],DLINC BXDEC DHJNZ L1LEA SI,RNUMLEA BX,NUMMOV DL,CHMOV DH,00HADD BX,DXMOV DH,CHL2:DEC BXMOV DL,[BX]MOV [SI],DLDEC DHJZ NEXTINC SIJMP L2NEXT:CALL DISPMOV AH,4CHINT 21H
READ PROC NEAR
115 | P a g e
PUBLIC READMOV CL,04HMOV DL,','MOV AH,06HINT 21HMOV AH,01HINT 21HMOV DL,ALSUB DL,30HCMP DL,0AHJC R1SUB DL,07HR1:SHL DL,CLMOV AH,01HINT 21HSUB AL,30HCMP AL,0AHJC R2SUB AL,07HAND AL,0FHR2: OR DL,ALRET
READ ENDP
DISP PROC NEAR PUBLIC DISP
LEA DX,MESS3MOV AH,09HINT 21HLEA SI,RNUMMOV CL,04HM3:MOV DL,','MOV AH,06HINT 21HMOV bL,[SI]MOV DL,BLSHR DL,CLCMP DL,0AHJC M1ADD DL,07HM1:ADD DL,30HMOV AH,06HINT 21HAND BL,0FHCMP BL,0AH
116 | P a g e
JC M2ADD BL,07HM2:ADD BL,30HMOV DL,BLMOV AH,06HINT 21HDEC CHJZ M4INC SIJMP M3M4: RET
DISP ENDPCODE ENDSEND START
OUTPUTENTER THE LIMIT OF AN ARRAY:05ENTER THE ARRAY ELEMENTS:12,4C,DB,D5REVERSE OF THE GIVEN ARRAY:D5,DB,4C,12
40.TO DISPLAY CURRENT TIME.
117 | P a g e
DATA SEGMENT MESS1 DB 0AH,0DH,'TIME IS:'0AH,0DH,'$'DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX LEA DX,MESS1 MOV AH,09H INT 21H L1:MOV AH,2CH INT 21H MOV AL,CH CALL CONV CALL DISP MOV DL,':' MOV AH,06H INT 21H MOV AL,CL CALL CONV CALL DISP MOV DL,':' MOV AH,06H INT 21H MOV DL,0DH MOV AH,06H INT 21H JMP L1 MOV AH,4CH INT 21H
DISP PROC NEAR PUBLIC DISP
MOV BL,AH MOV DL,AL ADD DL,30H MOV AH,06H INT 21H MOV DL,BL ADD DL,30H MOV AH,06H INT 21H
118 | P a g e
RET
DISP ENDP
CONV PROC NEAR PUBLIC CONV
MOV AH,00H MOV BH,0AH DIV BH RET
CONV ENDP CODE ENDS END START
OUTPUT:
THE CURRENT TIME IS: 23:37:23.85
41.TO DISPLAY CURRENT DATE.
119 | P a g e
DATA SEGMENT MESS1 DB 0AH,0DH,'THE CURRENT DATE 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 MOV AH,2AH INT 21H MOV SI,CX MOV BL,DH MOV BH,DL CALL DISP MOV DL,'-' MOV AH,06H INT 21H MOV BL,BH CALL DISP MOV DL,'-' MOV AH,06H INT 21H XOR DX,DX MOV AX,SI MOV CX,0064H DIV CX MOV DH,DL MOV BL,AL CALL DISP MOV BL,DH MOV AH,4CH INT 21H
CONV PROC NEAR PUBLIC CONV
MOV CL,04H XOR AH,AH MOV AL,BL MOV BL,0AH
120 | P a g e
DIV BL SHL AL,CL ADD AL,AH DAA MOV BL,AL RET
CONV ENDP
DISP PROC NEAR PUBLIC DISP
MOV CL,04H CALL CONV 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:
THE CURRENT DATE IS: MON 07/11/2011
121 | P a g e