Microprocessor Programs

63
;ASSIGNMENT NO.1 :: PROGRAM TO ADD ARRAY OF N NUMBERS ; NAME :: SHOEB H SAYYED ; ROLL NO :: 31 DATA SEGMENT M DB 10,13,'ENTER THE SIZE: $' M1 DB 10,13,'ENTER THE NUMBERS: $' M2 DB 10,13,'ADDITION : $' M3 DB 10,13,'$' CNT DB 0 ;COUNTER FOR COUNTING THE NUMBERS ARR DB 10 DUP(0) DATA ENDS DISP MACRO MSG ;MACRO USED TO DISPLAY THE STRING LEA DX,MSG MOV AH,09H ;DISPLAY STRING FUNCTION INT 21H ENDM READ MACRO ;MACRO USED TO READ A NUMBER MOV AH,01H ;FUNCTIO TO READ A NUMBER INT 21H ENDM PRINT MACRO ;MACRO USED TO PRINT THE CHARACTER MOV AH,02H ;FUNCTION TO PRINT INT 21H ENDM CODE SEGMENT ASSUME CS:CODE,DS:DATA

Transcript of Microprocessor Programs

Page 1: Microprocessor Programs

;ASSIGNMENT NO.1 :: PROGRAM TO ADD ARRAY OF N NUMBERS; NAME :: SHOEB H SAYYED; ROLL NO :: 31

DATA SEGMENT

M DB 10,13,'ENTER THE SIZE: $'M1 DB 10,13,'ENTER THE NUMBERS: $'M2 DB 10,13,'ADDITION : $'M3 DB 10,13,'$'

CNT DB 0 ;COUNTER FOR COUNTING THE NUMBERSARR DB 10 DUP(0)

DATA ENDS

DISP MACRO MSG ;MACRO USED TO DISPLAY THE STRINGLEA DX,MSGMOV AH,09H ;DISPLAY STRING FUNCTIONINT 21HENDM

READ MACRO ;MACRO USED TO READ A NUMBERMOV AH,01H ;FUNCTIO TO READ A NUMBERINT 21HENDM

PRINT MACRO ;MACRO USED TO PRINT THE CHARACTER MOV AH,02H ;FUNCTION TO PRINTINT 21HENDM

CODE SEGMENT ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATAMOV DS,AX

DISP MREAD ;TO READ ARRY SIZESUB AL,30HMOV CNT,AL ;TO INITIALSE COUNTER

Page 2: Microprocessor Programs

DISP M1LEA SI,ARRMOV CL,CNT

L1: DISP M3 ;USED FOR A NEW LINE READ ;TO READ FIRST DIGIT OF FIRST NUMBER SUB AL,30H SHL AL,04H ;SHIFT LEFT BY FOUR BITS MOV BL,AL READ ;TO READ SECOND DIGIT OF FIRST NUMBER SUB AL,30H ADD BL,AL MOV [SI],BL INC SI LOOP L1 ;LOOP THROUGH L1 UNTILL VALID CONDITION LEA SI,ARR MOV CL,CNT MOV CH,00 MOV AX,00 MOV BH,00

L2: ADD AL,[SI] ;ADDITION IS CARRIED OUT DAA ;DECIMAL ADJUSTMENT AFTER ADDITION JNC L3 INC BH

L3: INC SI LOOP L2 MOV BL,AL DISP M2 MOV DL,BH ADD DL,30H PRINT

MOV DL,BL AND DL,0F0H SHR DL,04H ADD DL,30H PRINT

MOV DL,BL AND DL,0FH ADD DL,30H

Page 3: Microprocessor Programs

PRINT MOV AH,4CH ;END FUNCTIONINT 21H

CODE ENDSEND START

Page 4: Microprocessor Programs

c:\TASM>TASM SB1.ASMTurbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International

Assembling file: SB1.ASMError messages: NoneWarning messages: NonePasses: 1Remaining memory: 458k

c:\TASM>TLINK SB1

Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International

Assembling file: SB1.ASMError messages: NoneWarning messages: NonePasses: 1Remaining memory: 458k

c:\TASM>TLINK SB1Turbo Link Version 5.1 Copyright (c) 1992 Borland InternationalWarning: No stack

c:\TASM>SB1

ENTER THE SIZE: 6ENTER THE NUMBERS:202020202020ADDITION : 120c:\TASM>EXIT

Page 5: Microprocessor Programs

;ASSIGNMENT NO.2 :: PROGRAM FOR OVERLAPPED AND NON-OVERLAPPED BLOCK TRANSFER; NAME :: SHOEB H SAYYED; ROLL NO :: 31

DATA SEGMENT

M1 DB 10,13,'ENTER ARRAY SIZE : $'M2 DB 10,13,'ENTER ELEMENTS : $'M3 DB 10,13,'ENETR 1ST ARRAY : $'M4 DB 10,13,'ENTER 2ND ARRAY : $'M5 DB 10,13,'NON OVER-LAPPED BLOCK TRANSFER : $'M6 DB 10,13,'1ST BLOCK:: $'M7 DB 10,13,'2ND BLOCK:: $'M8 DB 10,13,'OVER-LAPPED TRANSFER :$ 'M9 DB 10,13,' $'

ARR1 DB 10 DUP(0)ARR2 DB 10 DUP(0)ARR3 DB 10 DUP(0)

CNT DW 0DATA ENDS ;MACRO TO DISPLAYDISP MACRO MSG MOV AH,09HLEA DX,MSGINT 21HENDM

READ MACRO ;MACRO TO READ NUMBERMOV AH,01HINT 21HENDM

PRINT MACRO ;MACRO TO PRINTMOV AH,02HINT 21HENDM

CODE SEGMENTASSUME CS:CODE , DS:DATA ,ES:DATASTART: MOV AX,DATA MOV DS,AX

Page 6: Microprocessor Programs

MOV ES,AX ;ES IS USED FOR THE 2ND ARRAY DISP M1 READ SUB AL,30H MOV CL,AL MOV CH,00H MOV CNT,CX LEA SI,ARR1 DISP M3 ;FOR FIRST ARRAY L1: DISP M2 ;FOR ELEMENTS READ SUB AL,30H CMP AL,09H JLE L2 SUB AL,07H L2: SHL AL,04 MOV BL,AL READ SUB AL,30H CMP AL,09H JLE L3 SUB AL,07H L3: ADD BL,AL MOV [SI],BL INC SI LOOP L1 MOV CX,CNT LEA SI,ARR2 DISP M9 DISP M4 ;FOR 2ND ARRAY L4: DISP M2 READ SUB AL,30H CMP AL,09H JLE L5 SUB AL,07H L5: SHL AL,04 MOV BL,AL READ SUB AL,30H

Page 7: Microprocessor Programs

CMP AL,09H JLE L6 SUB AL,07H L6: ADD BL,AL MOV [SI],BL INC SI LOOP L4 MOV CX,CNT LEA SI,ARR1 LEA DI,ARR3

L7: MOV AL,[SI] MOV [DI],AL INC DI INC SI LOOP L7

LEA DI,ARR3 MOV CX,CNT DISP M5 ;NON-OVERLAPPED BLOCK TRANSFER DISP M6

L8: DISP M9 MOV BL,[DI] MOV DL,BL AND DL,0F0H SHR DL,04 ADD DL,30H CMP DL,39H JLE L9 ADD DL,07H L9: PRINT AND BL,0FH ADD BL,30H CMP BL,39H JLE L10

Page 8: Microprocessor Programs

ADD BL,07H

L10: MOV DL,BL PRINT INC DI LOOP L8 MOV CX,CNT LEA SI,ARR2 LEA DI,ARR3

L15: MOV AL,[SI] MOV [DI],AL INC DI INC SI LOOP L15 LEA DI,ARR3 MOV CX,CNT

DISP M5 DISP M7

L16: DISP M9 MOV BL,[DI] MOV DL,BL AND DL,0F0H SHR DL,04 ADD DL,30H CMP DL,39H JLE L17 ADD DL,07H

L17: PRINT AND BL,0FH ADD BL,30H CMP BL,39H JLE L18 ADD BL,07H L18: MOV DL,BL PRINT

Page 9: Microprocessor Programs

INC DI LOOP L16 LEA SI,ARR2 LEA DI,ARR1 MOV CX,CNT INC SI INC SI L11: MOV AL,[DI] MOV [SI],AL INC DI INC SI LOOP L11

LEA SI,ARR2 MOV CX,CNT ADD CL,02H

DISP M8

L12 : DISP M9 MOV BL,[SI] MOV DL,BL AND DL,0F0H SHR DL,04 ADD DL,30H CMP DL,39H JLE L13 ADD DL,07H L13: PRINT

AND BL,0FH ADD BL,30H CMP BL,39H JLE L14 ADD BL,07H L14: MOV DL,BL PRINT INC SI LOOP L12

Page 10: Microprocessor Programs

MOV AH,4CHINT 21H

CODE ENDSEND START

Page 11: Microprocessor Programs

c:\TASM>EDIT SB2.ASM

c:\TASM>TASM SB2.ASMTurbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International

Assembling file: SB2.ASMError messages: NoneWarning messages: NonePasses: 1Remaining memory: 456k

c:\TASM>TLINK SB2;Turbo Link Version 5.1 Copyright (c) 1992 Borland InternationalWarning: No stack

c:\TASM>SB2;

ENTER ARRAY SIZE : 5ENETR 1ST ARRAY :ENTER ELEMENTS : 11ENTER ELEMENTS : 12ENTER ELEMENTS : 13ENTER ELEMENTS : 14ENTER ELEMENTS : 15

ENTER 2ND ARRAY :ENTER ELEMENTS : 21ENTER ELEMENTS : 22ENTER ELEMENTS : 23ENTER ELEMENTS : 24ENTER ELEMENTS : 25NON OVER-LAPPED BLOCK TRANSFER :1ST BLOCK:: 11 12 13 14 15NON OVER-LAPPED BLOCK TRANSFER :2ND BLOCK:: 21 22 23 24 25

Page 12: Microprocessor Programs

OVER-LAPPED TRANSFER : 21 22 11 12 13 14 15c:\TASM>EXIT

Page 13: Microprocessor Programs

;ASSIGNMENT NO.3 :: PROGRAM TO FIND AND COUNT NEGATIVE NO.FROM ARRA OF SIGNED NUMBERS; NAME :: SHOEB H SAYYED; ROLL NO :: 31

DATA SEGMENTM1 DB 10,13,'ENETR TOTAL NO. OF ELEMENTS : $'M2 DB 10,13,'ENETR ELEMENTS : $'M3 DB 10,13,'TOTAL NEGATIVE NOS. ARE : $'M4 DB 10,13,'NOS. ARE : $'M5 DB 10,13,' $'

ARR1 DB 10 DUP(0)ARR2 DB 10 DUP(0)CNT DW 0DATA ENDS

DISP MACRO MSG ;MACRO FOR DISPLAYMOV AH,09HLEA DX,MSGINT 21HENDM

READ MACRO ;MACRO TO READMOV AH,01HINT 21HENDM

PRINT MACRO ;MACRO TO PRINTMOV AH,02HINT 21HENDM

CODE SEGMENTASSUME CS:CODE , DS:DATA ,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX DISP M1 READ SUB AL,30H MOV CL,AL MOV CH,00H

Page 14: Microprocessor Programs

MOV CNT,CX LEA SI,ARR1 L1: DISP M2 ;FOR FIRST ARRAY READ SUB AL,30H CMP AL,09H JLE L2 SUB AL,07H L2: SHL AL,04 MOV BL,AL READ SUB AL,30H CMP AL,09H JLE L3 SUB AL,07H L3: ADD BL,AL MOV [SI],BL INC SI LOOP L1 LEA SI,ARR1 LEA DI,ARR2 MOV CX,CNT MOV BL,00H MOV BH,00H L5: MOV AL,[SI] AND AL,80H ;AND AL WITH 80H CMP AL,00H JE L4 MOV AL,[SI] MOV [DI],AL ADD BL,01H INC DI

L4: INC SI LOOP L5

MOV CH,00H MOV CL,BL

Page 15: Microprocessor Programs

DISP M3 ADD BL,30H MOV DL,BL PRINT

LEA DI,ARR2 DISP M4 L8: DISP M5 MOV BL,[DI] MOV DL,BL AND DL,0F0H SHR DL,04 ADD DL,30H CMP DL,39H JLE L9 ADD DL,07H L9: PRINT

AND BL,0FH ADD BL,30H CMP BL,39H JLE L10 ADD BL,07H L10: MOV DL,BL PRINT INC DI LOOP L8

MOV AH,4CH INT 21H

CODE ENDS END START

Page 16: Microprocessor Programs

c:\TASM>TASM SB3.ASMTurbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International

Assembling file: SB3.ASMError messages: NoneWarning messages: NonePasses: 1Remaining memory: 458k

c:\TASM>TLINK SB3Turbo Link Version 5.1 Copyright (c) 1992 Borland InternationalWarning: No stack

c:\TASM>SB3

ENETR TOTAL NO. OF ELEMENTS : 5ENETR ELEMENTS : 10ENETR ELEMENTS : F0ENETR ELEMENTS : C0ENETR ELEMENTS : A2ENETR ELEMENTS : 55TOTAL NEGATIVE NOS. ARE : 3NOS. ARE : F0 C0 A2c:\TASM>EXIT

Page 17: Microprocessor Programs

;ASSIGNMENT NO.4 :: PROGRAM TO CONVERT HEX TO BCD AND VICE VERSA ; NAME :: SHOEB H SAYYED; ROLL NO :: 31

DATA SEGMENTCNT DW 00MSG1 DB 10,13 DB " 1.HEX TO BCD: $"MSG2 DB 10,13 DB "2.BCD TO HEX: $"MSG3 DB 10,13 DB "3.EXIT: $"MSG4 DB 10,13 DB "ENTER THE CHOICE : $"MSG5 DB 10,13 DB "ENTER THE NUMBERS : $"MSG6 DB 10,13 DB "THE BCD NUMBER IS : $"MSG7 DB 10,13 DB "THE HEX NUMBER IS : $"

DATA ENDS

READ MACROMOV AH,01HINT 21HENDM

DISP MACRO MOV AH,09HINT 21HENDM

PRINT MACROMOV AH,02HINT 21HENDM

EXIT MACROMOV AX,4C00HINT 21HENDM

CLEAR MACRO ;CLEARSCREEN FUNCTION

Page 18: Microprocessor Programs

MOV AX,0003HINT 10HENDM

CODE SEGMENTASSUME CS:CODE,DS:DATA

START: MOV AX,DATA MOV DS,AX CLEAR

NE3: LEA DX,MSG1 DISP LEA DX,MSG2 DISP LEA DX,MSG3 DISP LEA DX,MSG4 ;ENTERING THE CHOICE DISP

READ CMP AL,31H JE L1 CMP AL,32H JE L2 JMP BA

L2: CALL BCD JMP NE3

BA: EXIT

L1: LEA DX,MSG5 ;ENTERING HEX NUMBERS DISP

READ SUB AL,30H CMP AL,09H JLE L3 SUB AL,07HL3: SHL AL,04H

MOV BH,AL

Page 19: Microprocessor Programs

READ SUB AL,30H CMP AL,09H JLE L4 SUB AL,07HL4: ADD BH,AL

READ SUB AL,30H CMP AL,09H JLE L5 SUB AL,07HL5: SHL AL,04H

MOV BL,AL

READ SUB AL,30H CMP AL,09H JLE L6 SUB AL,07HL6: ADD BL,AL

MOV AX,BX MOV DX,0000H MOV BX,0010BACK1:DIV BX MOV CX,DX ;STORING REMAINDER PUSH CX INC CNT MOV DX,0000H CMP AX,0000H JNE BACK1

LEA DX,MSG6 ;DISPLAYING BCD NOS OF HEX DISP

L8: POP CX MOV DL,CL ADD DL,30H CMP DL,39H JLE L7 ADD DL,07H

Page 20: Microprocessor Programs

L7: PRINT DEC CNT CMP CNT,00H JNE L8 JMP NE3

EXIT

BCD PROC NEAR LEA DX,MSG5 ;ENTERING BCD NUMBERS DISP

MOV CL,10 MOV CH,00H MOV BX,0000H MOV DH,00H NEXT:READ CMP AL,13 JE NE1

SUB AL,30H MOV AH,00H PUSH AX MOV AX,BX MUL CX POP DX ADD AX,DX MOV BX,AX JMP NEXT NE1: CMP BX,0000H JNE NE2 EXIT

NE2: LEA DX,MSG7 ;DISPLAYING HEX NOS OF BCD DISP

MOV CX,BX

AND BX,0F000H ROR BX,0CH MOV DL,BL ADD DL,30H CMP DL,39H

Page 21: Microprocessor Programs

JLE L13 ADD DL,07HL13: PRINT

MOV BX,CX

AND BX,0F00H ROR BX,08H MOV DL,BL ADD DL,30H CMP DL,39H JLE L14 ADD DL,07HL14: PRINT MOV BX,CX

AND BX,00F0H ROR BX,04H MOV DL,BL ADD DL,30H CMP DL,39H JLE L15 ADD DL,07HL15: PRINT MOV BX,CX

AND BX,000FH MOV DL,BL ADD DL,30H CMP DL,39H JLE L16 ADD DL,07HL16: PRINT RET BCD ENDP

CODE ENDSEND START

Page 22: Microprocessor Programs

1.HEX TO BCD:2.BCD TO HEX:3.EXIT:ENTER THE CHOICE : 1ENTER THE NUMBERS : FFFFTHE BCD NUMBER IS : 65535

1.HEX TO BCD:2.BCD TO HEX:3.EXIT:ENTER THE CHOICE : 2ENTER THE NUMBERS : 65535THE HEX NUMBER IS : FFFF

1.HEX TO BCD:2.BCD TO HEX:3.EXIT:ENTER THE CHOICE : 3C:\TASM>

Page 23: Microprocessor Programs

;ASSIGNMENT NO.5 :: PROGRAM TO SORT NUMBERS IN ARRAY IN ASC AND DECS ORDER; NAME :: SHOEB H SAYYED; ROLL NO :: 31

DATA SEGMENTARR1 DB 10 DUP(0)ARR2 DB 10 DUP(0)MSG1 DB 10,13,'ENTER THE SIZE OF ARRAY :$'MSG2 DB 10,13,'ENTER THE ELEMENTS $'MSG3 DB 10,13,'$'MSG4 DB 10,13,'SORTED ARRAY IS :$'MSG5 DB 10,13,'^^^^^^MENU^^^^^^$'MSG6 DB 10,13,'(1)ASCENDING SORT$'MSG7 DB 10,13,'(2)DESCENDING SORT$'MSG8 DB 10,13,'(3)EXIT$'MSG9 DB 10,13,'ENTER YOUR CHOICE :$'TEMP DB 0CNT DW 0CNT1 DW 0CNT2 DW 0DATA ENDS

READ MACROMOV AH,01HINT 21HENDM

DISP MACRO MSGMOV AH,09HLEA DX,MSGINT 21HENDM

PRINT MACROMOV AH,02HINT 21HENDM

CLEAR MACRO ;FUNCTION FOR CLEAR SCREENMOV AX,0003HINT 10HENDM

Page 24: Microprocessor Programs

CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX

CLEAR

DISP MSG1 READ SUB AL,30H MOV CL,AL MOV CH,00H MOV CNT,CX MOV CNT1,CX MOV CNT2,CX LEA SI,ARR1 L3:DISP MSG2 READ SUB AL,30H CMP AL,09H JLE L1 SUB AL,07H L1:SHL AL,04 MOV BL,AL READ SUB AL,30H CMP AL,09H JLE L2 SUB AL,07H L2:ADD BL,AL MOV [SI],BL INC SI LOOP L3

MAIN:DISP MSG5 DISP MSG6 DISP MSG7 DISP MSG8 DISP MSG9 READ CMP AL,31H JNE A CALL ASCENDING JMP MAIN

Page 25: Microprocessor Programs

A:CMP AL,32H JNE B CALL DECREASE JMP MAIN B:CMP AL,33H MOV AH,4CH INT 21H

ASCENDING PROC DEC CNT2 LEA SI,ARR1 L6:LEA DI,ARR1 MOV CX,CNT2 INC SI MOV DI,SI DEC SI L5:MOV AL,[SI] MOV BL,[DI] CMP AL,BL JLE L4 MOV BH,[SI] MOV DL,[DI] MOV [SI],DL MOV [DI],BH L4:INC DI LOOP L5 INC SI DEC CNT2 JNZ L6

LEA SI,ARR1 MOV CX,CNT DISP MSG4 L9:DISP MSG3 MOV AL,[SI] MOV BL,AL AND AL,0F0H SHR AL,4 ADD AL,30H CMP AL,39H JLE L7 ADD AL,07H L7:MOV DL,AL

Page 26: Microprocessor Programs

PRINT MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,39H JLE L8 ADD AL,07H L8:MOV DL,AL PRINT INC SI LOOP L9 RET ASCENDING ENDP

DECREASE PROC DEC CNT1 LEA SI,ARR1 L16:LEA DI,ARR1 MOV CX,CNT1 INC SI MOV DI,SI DEC SI L15:MOV AL,[SI] MOV BL,[DI] CMP AL,BL JG L14 MOV BH,[SI] MOV DL,[DI] MOV [SI],DL MOV [DI],BH L14:INC DI LOOP L15 INC SI DEC CNT1 JNZ L16

LEA SI,ARR1 MOV CX,CNT DISP MSG4 L19:DISP MSG3 MOV AL,[SI] MOV BL,AL AND AL,0F0H SHR AL,4 ADD AL,30H

Page 27: Microprocessor Programs

CMP AL,39H JLE L17 ADD AL,07H L17:MOV DL,AL PRINT MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,39H JLE L18 ADD AL,07H L18:MOV DL,AL PRINT INC SI LOOP L19 RET DECREASE ENDP

CODE ENDS END START

Page 28: Microprocessor Programs

ENTER THE SIZE OF ARRAY :5ENTER THE ELEMENTS 33ENTER THE ELEMENTS 22ENTER THE ELEMENTS 11ENTER THE ELEMENTS 44ENTER THE ELEMENTS 00^^^^^^MENU^^^^^^(1)ASCENDING SORT(2)DESCENDING SORT(3)EXITENTER YOUR CHOICE :1SORTED ARRAY IS :0011223344

^^^^^^MENU^^^^^^(1)ASCENDING SORT(2)DESCENDING SORT(3)EXITENTER YOUR CHOICE :2SORTED ARRAY IS :4433221100^^^^^^MENU^^^^^^(1)ASCENDING SORT(2)DESCENDING SORT(3)EXITENTER YOUR CHOICE :3C:\TASM>

Page 29: Microprocessor Programs

;ASSIGNMENT NO.6 :: PROGRAM FOR STRING MANIPULATION; NAME :: SHOEB H SAYYED; ROLL NO :: 31

DATA SEGMENTS DB 20H DB 0 DB 20H DUP(0)ARR DB 20H DUP(0)M1 DB 10,13,'ENTER THE STRING :$'M2 DB 10,13,'LENGTH IS $'M3 DB 10,13,'$'M4 DB 10,13,'********MENU********$'M5 DB 10,13,'1.LENGTH $'M6 DB 10,13,'2.REVERSE $'M7 DB 10,13,'3.PALINDROME $'M8 DB 10,13,'4.EXIT $'M9 DB 10,13,'ENTER YOUR CHOICE $'M10 DB 10,13,'LENGTH OF STRING $'M11 DB 10,13,'STRING IS PALINDROME $'M12 DB 10,13,'STRING IS NOT PALINDROME $'

CNT DB 0DATA ENDS

DISP MACRO MSGMOV AH,09HLEA DX,MSGINT 21HENDM

PRINT MACROMOV AH,02HINT 21HENDM

READ MACROMOV AH,01HINT 21HENDM

CLEAR MACRO ;CLEARSCREEN FUNCTIONMOV AX,0003HINT 10H

Page 30: Microprocessor Programs

ENDM

CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX

CLEAR

DISP M1 MOV AH,0AH LEA DX,S INT 21H L1: DISP M4 DISP M5 DISP M6 DISP M7 DISP M8 DISP M9 READ L2: CMP AL,31H JNE L3 CALL COUNT JMP L1 L3: CMP AL,32H JNE L4 CALL REV JMP L1 L4: CMP AL,33H JNE L5 CALL PAL JMP L1 L5: CMP AL,34H MOV AH,4CH INT 21H LOOP L1

COUNT PROC ;DISP COUNT LEA SI,S INC SI DISP M2 MOV DL,[SI] ADD DL,30H PRINT RET

Page 31: Microprocessor Programs

COUNT ENDP

DISPS PROC ;DISP STRING MOV CL,[SI] MOV CH,0 INC SI X: MOV DL,[SI] PRINT INC SI LOOP X RET DISPS ENDP

REV PROC DISP M3 LEA SI,ARR LEA DI,S INC DI MOV CL,[DI] MOV CNT,CL G: INC DI LOOP G MOV CL,CNT P: MOV BL,[DI] MOV [SI],BL DEC DI INC SI LOOP P LEA SI,ARR LEA DI,S INC DI MOV CL,[DI] MOV CH,0 C: MOV DL,[SI] PRINT INC SI LOOP C RET REV ENDP

PAL PROC LEA SI,ARR LEA DI,S INC DI MOV CL,[DI] INC DI

Page 32: Microprocessor Programs

V:MOV BL,[DI] CMP [SI],BL JNE A LOOP V DISP M11 JMP O A:DISP M12 O:RET PAL ENDP

MOV AH,4CHINT 21HCODE ENDSEND START

Page 33: Microprocessor Programs

ENTER THE STRING : GSMCOE********MENU********1.LENGTH2.REVERSE3.PALINDROME4.EXITENTER YOUR CHOICE 1LENGTH IS 6********MENU********1.LENGTH2.REVERSE3.PALINDROME4.EXITENTER YOUR CHOICE 2EOCMSG

********MENU********1.LENGTH2.REVERSE3.PALINDROME4.EXITENTER YOUR CHOICE 3STRING IS NOT PALINDROME********MENU********1.LENGTH2.REVERSE3.PALINDROME4.EXITENTER YOUR CHOICE 4C:\TASM>

Page 34: Microprocessor Programs

;PROGRAM FOR STRING OPERATIONS USING FAR PROCEDURE; ROLL NO :: 31

DATA SEGMENTSTR1 DB 25 DB 0 DB 25 DUP(0)STR2 DB 25 DB 0 DB 25 DUP(0)STR3 DB 10 DB 0 DB 10 DUP(0)

MSG1 DB 10,13 DB "Enter the string 1: $ " MSG2 DB 10,13 DB "Enter the string 2: $ "MSG3 DB 10,13 DB "CONCATENATE STRING IS : $ "MSG4 DB 10,13 DB "STRINGS ARE EQUAL$"MSG5 DB 10,13 DB "STRINGS ARE UNEQUAL $"MSG7 DB 10,13 DB "1> CONCATENATE $"MSG8 DB 10,13 DB "2> COMPARE THE STRINGS $"MSG9 DB 10,13 DB "3> NO. OF OCCURENCES OF SUBSTRING $"MSG10 DB 10,13 DB "4> Exit $"MSG11 DB 10,13 DB "Enter your choice $"MSG12 DB 10,13 DB "Enter the substring $"MSG15 DB 10,13 DB "$"MSG16 DB 10,13 DB "THE SUBSTRING OCCURES :$"

CNT1 DW ?DATA ENDS

DISP MACRO MSG ;DISPLAY STRING FUNCTIONMOV AH,09H

Page 35: Microprocessor Programs

LEA DX,MSGINT 21HENDM

PRINT MACRO ;DISPLAY FUNTIONMOV AH,02HINT 21HENDM

READ MACRO ;ENTER NUMBER FUNCTIONMOV AH,01HINT 21HENDM

CLEAR MACRO ;CLEAR SCREEN FUNCTIONMOV AX,0003HINT 10HENDM

EXIT MACRO ;EXIT FUNCTIONMOV AX,4C00HINT 21HENDM

CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX ;Initialize data segment MOV ES,AX ;Initialize extra segment

CLEAR

DISP MSG1 MOV AH,0AH ;Accept string 1 from user LEA DX,STR1 INT 21H

DISP MSG2 MOV AH,0AH ;Accept string 2 from user LEA DX,STR2 INT 21H

MENU: DISP MSG7 DISP MSG8 DISP MSG9

Page 36: Microprocessor Programs

DISP MSG10 DISP MSG11 MOV AH,01H ;accept choice INT 21H CMP AL,30H JE TER CMP AL,31H JE CONC CMP AL,32H JE CHEK CMP AL,33H JE SUBSTRING CMP AL,34H JE TER JMP MENU

TER : EXIT;CONC : CALL CONCAT; JMP MENU;CHEK : CALL VERIFY; JMP MENU;SUBSTRING : CALL SUBSTRING; JMP MENU

CONC:LEA SI,STR1 INC SI MOV CH,00H MOV CL,[SI]B: INC SI DEC CL CMP CL,00H JNE B INC SI LEA DI,STR2 INC DI MOV CH,00H MOV CL,[DI] INC DIC: MOV BL,[DI] MOV [SI],BL INC DI INC SI DEC CL

Page 37: Microprocessor Programs

CMP CL,00H JNE C DEC SI MOV BX,SI MOV CL,BL MOV CH,00H DISP MSG3 LEA SI,STR1 INC SI INC SID: MOV BL,[SI] MOV DL,BL PRINT INC SI DEC CL JNE D JMP MENU

CHEK:LEA SI,STR1 INC SI MOV CH,00H MOV CL,[SI] MOV BL,CL LEA DI,STR2 INC DI MOV CH,00H MOV CL,[DI] CMP BL,CL JE L1 DISP MSG5 JMP MENUL1: DISP MSG4 JMP MENU

SUBSTRING: DISP MSG12 MOV AH,0AH ;ACCEPT SUBSTRING FROM USER LEA DX,STR3 INT 21H MOV AL,00H

LEA SI,STR1 INC SI MOV CH,00H MOV CL,[SI] INC SI

Page 38: Microprocessor Programs

BACK1: LEA DI,STR3 INC DI MOV DH,00H MOV DL,[DI] INC DI

BACK: MOV BL,[SI] MOV BH,[DI] CMP CL,00H JE T1 CMP DL,00H JNE L2 ADD AL,01H JMP BACK1

L2: CMP BL,BH JNE L3 INC DI DEC DL

L3: INC SI DEC CL JNE BACK

CMP DL,00H JNE L10 ADD AL,01HL10: MOV BL,AL DISP MSG16 MOV DL,BL CMP DL,09H JLE L5 ADD DL,07HL5: ADD DL,30H PRINT JMP MENU

T1: EXITCODE ENDSEND START

Page 39: Microprocessor Programs

OUT PUT 6...

Enter the string 1: MAMAMAEnter the string 2: SASASA1> CONCATENATE2> COMPARE THE STRINGS3> NO. OF OCCURENCES OF SUBSTRING4> ExitEnter your choice 1CONCATENATE STRING IS : MAMAMASASASA1> CONCATENATE2> COMPARE THE STRINGS3> NO. OF OCCURENCES OF SUBSTRING4> ExitEnter your choice 2STRINGS ARE EQUAL1> CONCATENATE2> COMPARE THE STRINGS3> NO. OF OCCURENCES OF SUBSTRING4> ExitEnter your choice 3Enter the substring ASTHE SUBSTRING OCCURES :01> CONCATENATE2> COMPARE THE STRINGS3> NO. OF OCCURENCES OF SUBSTRING4> ExitEnter your choice 3Enter the substring MAMTHE SUBSTRING OCCURES :11> CONCATENATE2> COMPARE THE STRINGS3> NO. OF OCCURENCES OF SUBSTRING4> ExitEnter your choice 4

Page 40: Microprocessor Programs

; ASSIGNMENT NO 8 ; NAME SHOEB H SAYYED; ROLL NO 31

DATA SEGMENTMSG1 DB 10,13 DB " 1.SUCCESSIVE ADDITION $"MSG2 DB 10,13 DB "2.SHIFTING METHOD $"MSG3 DB 10,13 DB "3.EXIT$"MSG4 DB 10,13 DB "ENTER THE CHOICE : $"MSG5 DB 10,13 DB "ENTER THE NUMBER 1 : $"MSG6 DB 10,13 DB "ENTER THE NUMBER 2 : $"MSG7 DB 10,13 DB "THE RESULT IS : $"

DATA ENDS

READ MACROMOV AH,01HINT 21HENDM

DISP MACRO MOV AH,09HINT 21HENDM

PRINT MACROMOV AH,02HINT 21HENDM

EXIT MACROMOV AX,4C00HINT 21HENDM

CLEAR MACRO ;CLEARSCREEN FUNCTIONMOV AX,0003HINT 10H

Page 41: Microprocessor Programs

ENDM

CODE SEGMENTASSUME CS:CODE,DS:DATA

START: MOV AX,DATA MOV DS,AX CLEAR

LEA DX,MSG5 ;ENTERING 1ST NUMBER DISP READ SUB AL,30H CMP AL,09H JLE L3 SUB AL,07HL3: SHL AL,04H

MOV BH,AL

READ SUB AL,30H CMP AL,09H JLE L4 SUB AL,07HL4: ADD BH,AL

READ SUB AL,30H CMP AL,09H JLE L5 SUB AL,07HL5: SHL AL,04H

MOV BL,AL

READ SUB AL,30H CMP AL,09H JLE L6 SUB AL,07HL6: ADD BL,AL

Page 42: Microprocessor Programs

LEA DX,MSG5 ;ENTERING 2ND NUMBER DISP READ SUB AL,30H CMP AL,09H JLE L7 SUB AL,07HL7: SHL AL,04H

MOV CH,AL

READ SUB AL,30H CMP AL,09H JLE L8 SUB AL,07HL8: ADD CH,AL

READ SUB AL,30H CMP AL,09H JLE L9 SUB AL,07HL9: SHL AL,04H

MOV CL,AL

READ SUB AL,30H CMP AL,09H JLE L10 SUB AL,07HL10: ADD CL,AL

NE3: LEA DX,MSG1 ;DISPLAYING MENU DISP LEA DX,MSG2 DISP LEA DX,MSG3 DISP LEA DX,MSG4 ;ENTERING THE CHOICE DISP

READ

Page 43: Microprocessor Programs

CMP AL,30H JE BA CMP AL,31H JE L1 ; CMP AL,32H ; JE L2 JMP BA

BA: EXIT

L1: MOV AX,0000HBACK: ADD AX,BX LOOP BACK MOV BX,AX JMP NE1

;L2: MOV AX,CX;AD: ADD AX,AX; RCL BX,01H; JNC SKIP; ADD AX,BX

;SKIP: DEC DL; JNZ AD; MOV CH,04H; MOV CL,04H; MOV BX,AX JMP NE1 NE1: LEA DX,MSG7 ;DISPLAYING RESULT DISP

MOV CX,BX

AND BX,0F000H ROR BX,0CH MOV DL,BL ADD DL,30H CMP DL,39H JLE L13 ADD DL,07HL13: PRINT

MOV BX,CX

Page 44: Microprocessor Programs

AND BX,0F00H ROR BX,08H MOV DL,BL ADD DL,30H CMP DL,39H JLE L14 ADD DL,07HL14: PRINT MOV BX,CX

AND BX,00F0H ROR BX,04H MOV DL,BL ADD DL,30H CMP DL,39H JLE L15 ADD DL,07HL15: PRINT MOV BX,CX

AND BX,000FH MOV DL,BL ADD DL,30H CMP DL,39H JLE L16 ADD DL,07HL16: PRINT JMP NE3

CODE ENDSEND START

Page 45: Microprocessor Programs

;****************************************************************************;; TITLE : IMPLIMENTATION OF REAL TIME CLOCK; NAME : SHOEB H SAYYED; ROLL NO : 31;;****************************************************************************

.MODEL TINY

.CODEORG 100HBEGIN:JMP INITSAVEINT08 DD 00COL DB 140HOUR DB ?MINUTE DB ?SECOND DB ?TSRALARM:PUSH AXPUSH BXPUSH CXPUSH DXPUSH SIPUSH DIPUSH ESPUSH SSPUSH DSPUSH CSPOP DSMOV AH,02HINT 1AHMOV HOUR,CHMOV MINUTE,CLMOV SECOND,DHCALL DISP

EXIT:POP DSPOP SSPOP ESPOP DIPOP SI

Page 46: Microprocessor Programs

POP DXPOP CXPOP BXPOP AXJMP DWORD PTR CS:SAVEINT08

DISP PROCMOV AX,0B800HMOV ES,AXMOV DI,140MOV AH,03HMOV CX,01

MOV AL,HOURAND AL,0F0HSHR AL,04ADD AL,30HMOV ES:[DI],ALMOV ES:[DI+1],AHADD DI,02

MOV AL,HOURAND AL,0FHADD AL,30HMOV ES:[DI],ALMOV ES:[DI+1],AHADD DI,02

MOV AL,':'MOV ES:[DI],ALMOV ES:[DI+1],AHADD DI,02

MOV AL,MINUTEAND AL,0F0HSHR AL,04ADD AL,30HMOV ES:[DI],ALMOV ES:[DI+1],AHADD DI,02

MOV AL,MINUTEAND AL,0FHADD AL,30HMOV ES:[DI],ALMOV ES:[DI+1],AH

Page 47: Microprocessor Programs

ADD DI,02

MOV AL,':'MOV ES:[DI],ALMOV ES:[DI+1],AHADD DI,02

MOV AL,SECONDAND AL,0F0HSHR AL,04ADD AL,30HMOV ES:[DI],ALMOV ES:[DI+1],AHADD DI,02

MOV AL,SECONDAND AL,0FHADD AL,30HMOV ES:[DI],ALMOV ES:[DI+1],AHADD DI,02

RETDISP ENDP

INIT:CLIMOV AH,35HMOV AL,08HINT 21HMOV WORD PTR SAVEINT08,BXMOV WORD PTR SAVEINT08+2,ESMOV AH,25HMOV AL,08HLEA DX,TSRALARMINT 21HMOV AH,31HMOV AL,01LEA DX,INITLEA BX,TSRALARMSUB DX,BXSTIINT 21HEND BEGIN

Page 48: Microprocessor Programs

C:\Documents and Settings\PRASAD>CD\ 20:43:21

C:\>CD TASM

C:\TASM>EDIT

C:\TASM>TASM ASSI10.ASMTurbo Assembler Version 3.0 Copyright (c) 1988, 1991 Borland International

Assembling file: ASSI10.ASMError messages: NoneWarning messages: NonePasses: 1Remaining memory: 460k

C:\TASM>TLINK /T ASSI10,ASSI10.COMTurbo Link Version 5.0 Copyright (c) 1992 Borland InternationalFatal: Unknown option

C:\TASM>ASSI10

C:\TASM>

Page 49: Microprocessor Programs

;****************************************************************************;; TITLE : IMPLIMENTATION OF SCREENSAVER; NAME : SHOEB H SAYYED; ROLL NO : 31;;****************************************************************************

.MODEL TINY

.CODEORG 100HSTART:JMP INITSAVEINT09 DD ?SAVEINT08 DD ?COUNT DB ?

MSG DB 'SCREENSAVER'TSR: PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH ES PUSH SS PUSH DS PUSH CS POP DS

INC COUNT CMP COUNT,91 JNE EXIT

MOV AH,05H MOV AL,01H INT 10H CALL DISP

EXIT: POP DS POP SS POP ES

Page 50: Microprocessor Programs

POP DI POP SI POP DX POP CX POP BX POP AX JMP DWORD PTR CS:SAVEINT08 TSRKEY: PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH ES PUSH SS PUSH DS PUSH CS POP DS

MOV COUNT,00 MOV AH,05H MOV AL,00 INT 10H POP DS POP SS POP ES POP DI POP SI POP DX POP CX POP BX POP AX JMP DWORD PTR CS:SAVEINT09 DISP PROC MOV AX,0B800H MOV ES,AX MOV DI,1144H MOV AH,03H MOV CX,11 LEA SI,MSG

L1:MOV BL,DS:[SI] MOV ES:[DI],BL MOV ES:[DI+1],AH

Page 51: Microprocessor Programs

ADD DI,2 INC SI LOOP L1 RET DISP ENDP

INIT:CLI MOV COUNT,00 MOV AH,35H MOV AL,08H INT 21H MOV WORD PTR SAVEINT08,BX MOV WORD PTR SAVEINT08+2,ES MOV AH,25H MOV AL,08H LEA DX,TSR INT 21H MOV AH,35H MOV AL,09H INT 21H MOV WORD PTR SAVEINT09,BX MOV WORD PTR SAVEINT09+2,ES MOV AH,25H MOV AL,09 LEA DX,TSRKEY INT 21H MOV AH,31H MOV AL,01 LEA DX,INIT LEA BX,TSR SUB DX,BX STI INT 21H END START

Page 52: Microprocessor Programs

C:\Documents and Settings\PRASAD>CD\

C:\>CD TASM

C:\TASM>EDIT

C:\TASM>TASM ASSI11.ASMTurbo Assembler Version 3.0 Copyright (c) 1988, 1991 Borland International

Assembling file: ASSI11.ASMError messages: NoneWarning messages: NonePasses: 1Remaining memory: 460k

C:\TASM>TLINK /T ASSI11,ASSI11.COMTurbo Link Version 5.0 Copyright (c) 1992 Borland InternationalFatal: Unknown option

C:\TASM>ASSI11

Page 53: Microprocessor Programs