Sie sind auf Seite 1von 8

MPI Lab Programs

1.Write a program in 8086 to find out maxium of N numbers


Program:
MES1:

OUTPUT 2500AD
ORG 2000H
DB 0AH,0DH,'ENTER THE VALUE'
LEA AX,MES1
CALL FAR 0FE00:0031H
CALL FAR 0FE00:0013H
CALL FAR 0FE00:00C7H
MOV BL,AL
MOV CL,AL
MOV CH,00H
MOV SI,2200H
CALL FAR 0FE00:0031H
CALL FAR 0FE00:00C7H
MOV [SI],AL
INC SI
DEC CL
JNZ IN
MOV SI,2200H
MOV CL,BL
MOV AL,[SI]
INC SI
LOOP B1
MOV SI,2200H
MOV CL,BL
DEC CL
MOV AL,[SI]
INC SI
CMP AL,[SI]
JNC NEXT
MOV AL,[SI]
LOOP BACK
CALL FAR 0FE00:0031H
CALL FAR 0FE00:0052H

IN:

B1:

BACK:

NEXT:

HLT

2.Arranging set of a number in ascending order


Program:
M:
M1:

OUTPUT 2500AD
ORG 2000H
CALL FAR 0FE00:0031H
DB 10,13,'ENTER N VALUE',00H
LEA AX,M1
CALL FAR 0FE00:0013H
CALL FAR 0FE00:0031H
CALL FAR 0FE00:00C7H
MOV DL,AL
MOV BL,AL
MOV DH,00H
MOV CL,AL
MOV CH,00H

MOV SI,2200H
CALL FAR 0FE00:0031H
CALL FAR 0FE00:00C7H
MOV [SI],AL
INC SI
LOOP L1
MOV SI,2200H

C1:

L1:
L2:

DEC DL
MOV CL,DL
MOV AL,[SI]
INC SI
CMP AL,[SI]
JC L3
XCHG AL,[SI]
LOOP L2
SUB SI,DX
MOV [SI],AL
INC SI
CMP DL,01H
JNZ L1
MOV SI,2200H
MOV CX,BX
MOV AL,[SI]
CALL FAR 0FE00:0031H
CALL FAR 0FE00:0052H
INC SI
LOOP L4
HLT

L3:

L4:

3. Conversion of HEX to BCD


Program:
M:
M1:
M2:

OUTPUT 2500AD
ORG 2000H
CALL FAR 0FE00:0031H
DB 10,13,'ENTER 2 DIGIT HEX VALUE',00H
DB 10,13,'THE BCD IS:',00H
LEA AX,M1
CALL FAR 0FE00:0013H
CALL FAR 0FE00:00E0H
MOV AH,00H
MOV BL,64H
DIV BL
MOV DL,AL
MOV AL,AH
MOV AH,00H
MOV BL,0AH
DIV BL
SHL AL
SHL AL
SHL AL
SHL AL
OR AL,AH
MOV AH,DL
MOV BX,AX
CALL FAR 0FE00:0031H

LEA AX,M2
CALL FAR 0FE00:0013H
MOV AX,BX
CALL FAR 0FE00:006AH
JMP M
RET
4. To check the given number is prime or not?
Program:
OUTPUT 2500AD
ORG 2000H
M1:

DB 10,13,' ENTER A NUMBER : ',00H


LEA AX,M1
CALL FAR 0FE00:0013H
CALL FAR 0FE00:00C7H
MOV BL,AL
MOV CH,AL
MOV CL,AL
MOV AH,00H
DEC CL
DEC CL
MOV BH,02H

L1:

DIV BH
CMP AH,00H
JE L2
INC BH
MOV AL,CH
MOV AH,00H
DEC CL
JNZ L1
CALL FAR 0FE00:0031H

M2:

DB 10,13,'

PRIME NUMBER

',00H

LEA AX,M2
CALL FAR 0FE00:0013H
JMP L3
L2:

CALL FAR 0FE00:0031H

M3:

DB 10,13,' NOT PRIME

',00H

LEA AX,M3
CALL FAR 0FE00:0013H
L3:

RET

5. To find out the Fibonacci series


Program:

OUTPUT 2500AD
ORG 2000H
CALL FAR 0FE00:0031H
MOV AX,0000H
MES1:

DB 10,13,'ENTER THE N VALUE : ',00H


LEA DX,MES1
MOV AX,DX
CALL FAR 0FE00:0013H
CALL FAR 0FE00:00C7H
MOV CL,AL
MOV CH,00H
MOV AL,00H
CALL FAR 0FE00:0031H
CALL FAR 0FE00:0052H
MOV AL,00H
MOV BL,01H
DEC CL

LAB:

XCHG AL,BL
ADD AL,BL
CALL FAR 0FE00:0031H
CALL FAR 0FE00:0052H
DEC CL
JNZ LAB
RET

6. Write a program to search an element in any search method


Program:
OUTPUT 2500AD
ORG 2000H
CALL FAR 0FE00:0031H
CALL FAR 0FE00:00C7H
MOV SI,2200H
MOV BL,AL
MOV CH,00H
MOV CL,AL
CALL FAR 0FE00:0031H

L1: CALL FAR 0FE00:0031H


CALL FAR 0FE00:00C7H
MOV [SI],AL
INC SI
LOOP L1
MOV CH,BL
DEC BL
L4: MOV SI,2200H
MOV CL,BL
L3: MOV AL,[SI]
MOV DI,SI
INC DI
CMP AL,[DI]
JL L2
MOV DL,[DI]
XCHG [DI],AL
XCHG [SI],DL
MOV SI,DI
MOV DL,[DI]
MOV [SI],DL
DEC SI
L2: INC SI
DEC CL
JNZ L3
DEC CH
JNZ L4
MOV SI,2200H
INC BL
MOV CL,BL
L5: MOV AL,[SI]
CALL FAR 0FE00:0031H
CALL FAR 0FE00:0031H
CALL FAR 0FE00:0052H
INC SI
DEC BL
JNZ L5
RET
7. Write a program in 8086 Alp to run the stepped motor in different speeds
Program:
OUTPUT 2500AD

MES1:
START:
GET:

ORG 2000H
MOV AX,0000H
;Initialise Segment
MOV ES,AX
;Registers
MOV DX,0FFE6H
;Initialise
MOV AL,80H
;all 8255 Ports as o/p
OUT DX,AL
CALL FAR 0FE00:01EDH
JMP SHORT START
DB 0AH,0DH,'ENTER DIRECTION'
DB 0AH,0DH,'A-ANTICLOCKWISE
C-CLOCKWISE',00H
LEA DX,MES1
MOV AX,DX
CALL FAR 0FE00:0013H
CALL FAR 0FE00:00A9H
CMP AL,41H
JE ANTI

;Display message
;on LCD or Console
;Wait for user entry
;If key ='A',
;rotate anti-clockwise

CLO:
R1:

ANTI:
R2:

COMMON:

DELAY:
SS:

CMP AL,43H
JE CLO
JMP SHORT GET

;If key = 'C'


;rotate clockwise
;Accept valid key only

CALL
OUT
CALL
RCR
JMP

COMMON
DX,AL
DELAY
AL,1
SHORT R1

;Introduce delay
;Rotate bits in
;data byte right & repeat

CALL
OUT
CALL
RCL
JMP

COMMON
DX,AL
DELAY
AL,1
SHORT R2

;Rotate bits
;left & repeat

CALL
CALL
MOV
MOV
RET

FAR 0FE00:0031H
FAR 0FE00:00H
AL,11H
DX,0FFE0H

;Output value
;to Port A

MOV CX,800H
LOOP SS
RET
END

;Delay routine

8.Write a program to stimulate TLC(Traffic Light Controller) using 8086


Program:
OUTPUT 2500AD
ORG
START: MOV
MOV
OUT
AGAIN: MOV
NEXTST: MOV
MOV
OUT
INC
ADD
MOV
OUT
INC
ADD
MOV
OUT
INC
CALL
CMP
JNZ
JMP
DELAY: MOV
DLY5: PUSH
MOV
DLY10: NOP

2000H
AL,80H
DX,0FFE6H
DX,AL
SI,2038H
AL,[SI]
DX,0FFE0H
DX,AL
SI
DX,2
AL,[SI]
DX,AL
SI
DX,2
AL,[SI]
DX,AL
SI
DELAY
SI,2056H
NEXTST
AGAIN
CX,0FFH
CX
CX,03FFH

; Initialisation of 8255 Mode 0


; All ports as o/p ports
; Table of port values
; PortA value

; PortB value

; PortC value
; Calling Delay routine
; Checking for the end of the data values
; Delay routine

LOOP
POP
LOOP
RET

DLY10
CX
DLY5

ORG
2038H
PORTVALUES: DB
DB
DB
DB
DB
DB
DB
DB
DB
DB
DB

10H,81H,7AH
44H,44H,0F0H
08H,11H,0E5H
44H,44H,0F0H
81H,10H,0DAH
44H,44H,0F0H
11H,08H,0B5H
44H,44H,0F0H
88H,88H,00H
44H,44H,0F0H
00H

;
;
;
;
;
;
;
;
;
;
;

State 1
All ambers
State 2
All ambers
State 3
All ambers
State 4
All ambers
State 5
All ambers
Dummy

ON
ON
ON
ON
ON

9. Write a program to interface 4 nor of FND 507 to 8086 in multiplexed mode//se


ven segment display
Program:
OUTPUT 2500AD
ORG
MOV
MOV
MOV
MOV
OUT

2000H
AX,0000H
DS,AX
DX,FFE6H
AL,80H
DX,AL

LOOP4: MOV
MOV
LOOP3: MOV
LOOP2: MOV

SI,2100H
CL,05H
CH,04H
BL,08H

MOV
INC
LOOP1: ROL
MOV
OUT
MOV
MOV
MOV
OUT
DEC
OUT
MOV
DEC
JNZ
DEC

AL,[SI]
SI
AL,1
DX,FFE2H
DX,AL
AH,AL
AL,01H
DX,FFE4H
DX,AL
AL
DX,AL
AL,AH
BL
LOOP1
CH

;Initialise segment reg.


;Configure all 8255 ports
;as output.
;Initialise pointer
;set counter for 5 groups.
;4 charecters/group
;8 segments/charecter
;get the display code
;Increment pointer
;get 1 data bit
;o/p bit to portb
;o/p clock to
;shift register

;all bits over?


;no,continue
;all charecters over

?
JNZ LOOP2

;no,continue

CALL DELAY
DEC CL
JNZ LOOP3
JMP SHORT LOOP4

;all groups over?


;no,continue

DELAY: PUSH CX
MOV CX,0

;delay subroutine

L1: LOOP L1
L2: LOOP L2
POP CX
RET
;Display code table
ORG 2100H
STRING: DB 0FFH,0FFH,0FFH,0FFH
DB 0C6H,086H,0C7H,086H
DB 0BFH,0C0H,0DEH,087H
DB 0BFH,092H,091H,092H
DB 092H,0C8H,086H,087H
END

Das könnte Ihnen auch gefallen