DLM Micro 8086 Lab

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

NAME – G SARAN KUMAR

REG NO -20MIS0075

DIGITAL LOGICS AND MICROPROCESSOR LAB


ASSIGNMENT- 8086 ASSEMBLY LANGUAGE PROGRAMMING

MOV BX,0122H
MOV CX,0127H
ADD BX,CX
HLT

OUTPUT

FOR MULTIPLICATION :

MOV SI,1000H
MOV AL,[SI]
INC SI
MOV BL,[SI]
ADD AL,BL
INC SI
MOV[SI],AL
END

OUTPUT

FOR DIVISION

MOV AL,00H
MOV BL,08H
MOV BL,02H
DIV BL
HL

OUTPUT
MOV CX,[0500]
MOV AX,0001
MOV DX,0000
L1: MUL CX
LOOP L1
MOV AX,[0600]
MOV DX,[0601]
HLT

OUTPUT
MOV CH, 0AH
L2: MOV SI, 2000H
MOV CL, 09H
L1: MOV AH, [SI]
INC SI
MOV AL, [SI]
CMP AH, AL
JC NEXT
MOV [SI-1], AL
MOV [SI], AH
NEXT: DEC CL
JNZ L1
DEC CH
JNZ L2
END

OUTPUT

MOV SI, 1000H


MOV CL, 10H
MOV [SI], 00H
MOV AX, [SI]
INC SI
DEC CL
MOV [SI], 01H
MOV BX, [SI]
INC SI
DEC CL
L1: ADD AX, BX
MOV DX, AX
MOV [SI], AX
MOV AX, BX
MOV BX, DX
INC SI
DEC CL
JNZ L1
END

OUTPUT

MOV
CL,
10H
MOV
SI, 2000H
MOV AH, [SI]
INC SI
DEC CL
L1: MOV AL, [SI]
CMP AH, AL
JNC NEXT
MOV AH, AL
NEXT: INC SI
DEC CL
JNZ L1
END

OUTPUT

MOV SI,
1000H
MOV
DI, 3000H
MOV CX, 10H
AGAIN: MOV AX, [SI]
MOV [DI], AX
INC SI
INC DI
DEC CX
JNZ AGAIN
END

OUTPUT
ASSUME CS:CODE,DS:DATA,ES:EXTRA
DATA SEGMENT
STRING1 DB 'MICROPROCESSOR INTERFACING LAB$'
STRING2 DB ‘AND ’
STRLEN EQU ($-STRING1)
ORG 0070H
DATA ENDS
EXTRA SEGMENT
ORG 0010H
STRING3 DB 38 DUP(0)
EXTRA ENDS
CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, EXTRA
MOV ES, AX
MOV SI, OFFSET STRING1
MOV DI, OFFSET STRING3
CLD
MOV CX, 15
REP MOVSB
CLD
MOV SI, OFFSET STRING2
MOV CX,4
REP MOVSB
MOV SI, OFFSET STRING1
ADD SI,15
MOV CX, 15
REP MOVSB
INT 03H
CODE ENDS
END START
OUTPUT

DATA SEGMENT

BLOCK1 DB 'MALAYALAM'
MSG1 DB "IT IS PALINDROME $"
MSG2 DB "IT IS NOT PALINDROME $"
PAL DB 00H

DATA ENDS

PRINT MACRO MSG

MOV AH,09H
LEA DX,MSG
INT 21H
INT 3H

ENDM

EXTRA SEGMENT
BLOCK2 DB 9 DUP(?)
EXTRA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:EXTRA
START: MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
LEA SI,BLOCK1
LEA DI,BLOCK2+8
MOV CX,00009H
BACK: CLD
LODSB
STD
STOSB
LOOP BACK
LEA SI,BLOCK1
LEA DI,BLOCK2
MOV CX,0009H
CLD
REPZ CMPSB
JNZ SKIP
PRINT MSG1
SKIP: PRINT MSG2
CODE ENDS
END START

OUTPUT
ASSUME CS: CODE, DS: DATA ,ES:EXTRA
DATA SEGMENT
STRING1 DB 'MICROPROCESSOR$'
STRLEN EQU ($-STRING1)
DATA ENDS
EXTRA SEGMENT
STRING2 DB ?
EXTRA ENDS
CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, EXTRA
MOV ES, AX
MOV SI, OFFSET STRING1
MOV DI, OFFSET STRING2
MOV CX, STRLEN-1
ADD DI, CX
MOV DL,'$'
MOV ES:[DI],DL
AGAIN: DEC DI
MOV AL,DS:[SI]
MOV ES:[DI],AL
INC SI
DEC CX
JNZ AGAIN
INT 3H

OUTPUT

You might also like