0% found this document useful (0 votes)
62 views

Microprocessor Assignment

The document contains 5 assembly language programs written by A. Sai Charan Reddy for their MP LAB ASSIGNMENT-3. The programs perform operations like: (1) reversing a string, (2) deleting a word from a string, (3) searching for a word in a string, (4) inserting a byte into a string, and (5) transferring a block of data from one memory location to another. Details of the code segments to implement each operation are provided.

Uploaded by

Kapardhi kk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

Microprocessor Assignment

The document contains 5 assembly language programs written by A. Sai Charan Reddy for their MP LAB ASSIGNMENT-3. The programs perform operations like: (1) reversing a string, (2) deleting a word from a string, (3) searching for a word in a string, (4) inserting a byte into a string, and (5) transferring a block of data from one memory location to another. Details of the code segments to implement each operation are provided.

Uploaded by

Kapardhi kk
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

MP LAB ASSIGNMENT-3

NAME:A.SAI CHARAN REDDY


ROLL NUMBER:21CSB0A07

1. Write 8086 Masm Program to Perform The Following Operations.

(A) Reverse A String.

CODE:

.MODEL SMALL
.STACK 100H
.DATA
STRING DB 13,10,'I AM SAI CHARAN REDDY $'
X DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AL,'$'
LEA SI,STRING
MOV CL,00H
COUNT:
CMP AL,[SI]
JE GO
INC SI
INC CL
JMP COUNT
GO:
MOV AL,02H
SUB CL,AL
LEA DI,STRING
ADD DI,CL
LEA SI,STRING
L1:
MOV AL,[SI]
XCHG [DI],AL
MOV [SI],AL
INC SI
DEC DI
CMP DI,SI
JGE L1
MOV AH,09H
LEA DX,STRING
INT 21H
MOV AL,00H
MOV AH,04CH
INT 21H
MAIN ENDP
END MAIN
OUTPUT:

(B) Deleting a word from a string.

CODE:
.MODEL SMALL
.STACK 100H
.DATA
STR DB 'THIS IS SAI CHARAN REDDY $'
MSG1 DB 'ENTER NUMBER OF WORD TO BE DELETED-> $'
MSG2 DB ' $'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV CL,00H
LEA SI,STR
MOV AH,09H
LEA DX,MSG1
INT 21H
MOV AH,01H
INT 21H
SUB AL,'1'
MOV CL,AL
MOV AL,' '
GO:
CMP [SI],AL
JE COUNT
INC SI
JMP GO
COUNT:
INC SI
DEC CL
JNZ GO
MOV DI,SI
L1:
CMP [SI],AL
JE NEXT
INC SI
JMP L1
NEXT:
INC SI
MOV AL,'$'
L2:
CMP AL,[SI]
JE EXIT
MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
JMP L2
EXIT:
MOV AL,' '
MOV [DI],AL
INC DI
CMP DI,SI
JNE EXIT
MOV AH,09H
LEA DX,MSG2
INT 21H
MOV AH,09H
LEA DX,STR
INT 21H
MOV AL,00H
MOV AH,04CH
INT 21H
MAIN ENDP
END MAIN
OUTPUT:
(C) Searching A Word From A String.

CODE:
.MODEL SMALL
.STACK 100H
.DATA
STRING1 DB 'HELLO WORLD$'
STRING2 DB 'WORLD$'
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA SI,STRING1
MOV CL,0H
L1:
LEA DI,STRING2
MOV AL,[SI]
MOV BL,[DI]
CMP BL,'$'
JE COUNT
CMP AL,'$'
JE EXIT
INC SI
CMP AL,BL
JNE L1
INC DI
JMP L2
L2:
MOV AL,[SI]
MOV BL,[DI]
CMP BL,'$'
JE COUNT
CMP AL,'$'
JE EXIT
INC SI
CMP AL,BL
JNE L1
INC DI
JMP L2
COUNT:
INC CL
JE EXIT
EXIT:
INT 03
MAIN ENDP
END MAIN
OUTPUT:

(D) Insert a given byte in a string

CODE:
.MODEL SMALL
.STACK 100H
.DATA
STRING DB "IT IS BEAUTIFUL$"
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
LEA SI,STRING
MOV AL,'$'
L1:
CMP [SI],AL
JE GO
INC SI
JMP L1
GO:
MOV AL,'!'
MOV [SI],AL
INC SI
MOV AL,'$'
MOV [SI],AL
MOV AH,09H
LEA DX,STRING
INT 21H
MOV AH,4CH
INT 21H
MAIN ENDP
END MAIN
OUTPUT:

2. Develop and execute and assembly language program to perform the conversion from BCD to
binary

CODE:
.MODEL SMALL
.STACK 100H
.CODE
MAIN PROC
MOV AL,DS:[2000H]
MOV BL,AL
AND BL,0FH
MOV BH,AL
AND BH,0F0H
MOV CL,04H
SHR BH,CL
MOV AL,BH
MOV DL,0AH
MUL DL
ADD AL,BL
INT 3
MAIN ENDP
END MAIN
OUTPUT:

3. Write an assembly language program to count number of vowels in a given string.

CODE:
.MODEL SMALL
.STACK 100H
.DATA
MSG DB 13,10,'NUMBER OF VOWELS IS :$'
STRING DB 'SAICHARANREDDY $'
X DB ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV CX,0000H
LEA SI,STRING
GO:
MOV AL,'A'
CMP [SI],AL
JE COUNT
MOV AL,'E'
CMP [SI],AL
JE COUNT
MOV AL,'I'
CMP [SI],AL
JE COUNT
MOV AL,'O'
CMP [SI],AL
JE COUNT
MOV AL,'U'
CMP [SI],AL
JE COUNT
INC SI
MOV AL,'$'
CMP [SI],AL
JE RUN
JNE GO
COUNT:
INC CL
INC SI
MOV AL,'$'
CMP AL,[SI]
JE RUN
JMP GO
RUN:
ADD CL,'0'
MOV X,CL
MOV AH,09H
LEA DX,MSG
INT 21H
MOV AH,02H
MOV DX,X
INT 21H
MOV AL,00H
MOV AH,04CH
INT 21H
MAIN ENDP
END MAIN
OUTPUT:

4. Write an assembly language program to Generate Prime Numbers From 1 To 50.

CODE:
.MODEL SMALL
.STACK 100H
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AX,00H
MOV CL,00H
MOV BX,00H
MOV DX,00H
MOV BH,01H
L1:
INC BH
CMP BH,33H
JE EXIT
MOV AL,BH
MOV BL,02H
L2:
CMP BL,AL
JE COUNT
DIV BL
CMP AH,00H
JE L1
MOV AH,00H
INC BL
MOV AL,BH
JMP L2
COUNT:
INC CL
JMP L1
EXIT:
INT 3
MAIN ENDP
END MAIN
OUTPUT:

5. Write an assembly language program to transfer block of data from one memory location to
another memory location

CODE:
.MODEL SMALL
.STACK 100H
.DATA
STRING1 DB 01H,02H,03H,04H,05H
STRING2 DB 4 DUP(0)
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
LEA SI,STRING1
LEA DI,STRING2
MOV CX,05H
CLD
REP MOVSB
INT 3
MAIN ENDP
END MAIN
OUTPUT:

You might also like