Mi Lab Manual
Mi Lab Manual
Mi Lab Manual
Certificate
This is to certify that
Mr. /Ms________________________________________________________
Enrollment No.______________________ of B.E. ______________Semester
__________________________Branch has satisfactorily completed the Experiments in
MICROPROCESSOR AND INTERFACING.
_______________ _________________
1
PRACTICAL 1
AIM: TO STORE 8 BIT DATA.
PROGRAM:
(1) TO STORE 8 BIT DATA IN MEMORY LOCATION.
MVI A, 52H
STA 2000H
HLT
OR
LXI H, 2000H
MVI M, 52H
HLT
2
PRACTICAL 2
AIM: TO EXCHANGE THE CONTENTS OF MEMORY LOCATIONS.
PROGRAM:
LDA 1000H
MOV B, A
LDA 2000H
STA 1000H
MOV A, B
STA 2000H
HLT
OR
LXI H, 1000H
LXI D, 2000H
MOV B, M
LDAX D
MOV M, A
MOV A, B
STAX D
HLT
3
PRACTICAL 3
AIM: (A) TO ADD TWO 8 BIT NUMBERS.
(B) TO ADD TWO 16 BIT NUMBERS.
PROGRAM:
(A)
LXI H, 2000H
MOV A, M
INX H
ADD M
INX H
MOV A, M
HLT
(B)
LHLD 2000H
XCHG
LHLD 2002H
MOV A, E
ADD L
MOV L, A
MOV A, D
ADC H
MOV H, A
SHLD 2004H
HLT
OR
LHLD 2000H
XCHG
LHLD 2002H
DAD D
4
SHLD 2004H
HLT
PRACTICAL 4
AIM: (A) TO SUBTRACT TWO 8 BIT NUMBERS.
(B) TO SUBTRACT TWO 16 BIT NUMBERS.
PROGRAM:
(A)
LXI H, 2000H
MOV A, M
INX H
SUB M
INX H
MOV A, M
HLT
(B)
LHLD 2000H
XCHG
LHLD 2002H
MOV A, E
SUB L
MOV L, A
MOV A, D
SBB H
MOV H, A
SHLD 2004H
HLT
5
PRACTICAL 5
AIM: (A) TO INCREMENT AND DECREMENT OF DATA.
(B) TO FIND 1’S AND 2’S COMPLEMENT OF NUMBER.
PROGRAM:
(A1) FOR 8 BIT DATA: (B1)
MVI A, FFH LXI H, 2200H
MOV B, A MVI M, 55H
INR B / DCR B LDA 2200H
HLT CMA
OR STA 2300H
LXI H, 2000H HLT
MVI M, FFH (B2)
MOV C, M LXI H, 2200H
INR C / DCR C MVI M, 55H
HLT LDA 2200H
(A2) FOR 16 BIT DATA: CMA
MVI B, FFH ADI 01H
MVI C, FFH STA 2300H
INX B / DCX B HLT
HLT
6
PRACTICAL 6
AIM: TO ALTER THE CONTENTS OF FLAG REGISTER.
PROGRAM:
PUSH PSW
POP H
MOV A, L
CMA
MOV L, A
PUSH H
POP PSW
HLT
7
PRACTICAL 7
AIM: (A) WRITE A SUBROUTINE TO EXCHANGE THE UPPER AND LOWER NIBBLES OF A REGISTER.
(B) WRITE EQUIVALENT ASSEMBLY CODE OF CMP INSTRUCTION.
(C) WRITE STEP TO RESET THE AC FLAG WITHOUT AFFECTING OTHER FLAG.
(D) WRITE A PROGRAM TO FIND WHETHER TWO 16 BIT NUMBERS ARE EQUAL OR NOT? IF THEY
ARE EQUAL CLEAR THE ACCUMULATOR OTHERWISE STORE FFH.
PROGRAM:
(A) PUSH PSW
MVI A, D5H POP D
RRC / RLC MOV A, E
RRC / RLC ANI EFH
RRC / RLC MOV E, A
RRC / RLC PUSH D
HLT POP PSW
(B) HLT
LXI H, 2000H (D)
MVI M, A3H LXI H, 2000H
MOV B, M MVI M, 15H
MVI A, D5H INX H
MOV C, A MVI M, 1CH
SUB B INX H
HLT MVI M, B7H
(C) INX H
MVI A, A7H MVI M, 5AH
ADI 7DH LHLD 2000H
8
XCHG MOV A, H
LHLD 2002H XRA D
MOV A, L JZ STOP
XRA E LAST: MVI A, FFH
JNZ LAST STOP: HLT
PRACTICAL 8
AIM: CALCULATE THE SUM OF SERIES OF NUMBERS.
PROGRAM:
LXI H, 2000H
MVI M, 04H
INX H
MVI M, 20H
INX H
MVI M, 15H
INX H
MVI M, 13H
INX H
MVI M, 22H
LXI H, 2000H
LDA 2000H
MOV C, A
SUB A
LXI H, 2001H
BACK: ADD M
INX H
DCR C
JNZ BACK
STA 2300H
9
HLT
LXI H, 2000H
MVI M, 04H
INX H
MVI M, 52H
INX H
MVI M, 9AH
INX H
MVI M, 89H
INX H
MVI M, 3EH
LXI H, 2000H
LDA 2000H
MOV C, A
LXI H, 2001H
SUB A
MOV B, A
BACK: ADD M
JNC SKIP
INR B
SKIP: INX H
DCR C
JNZ BACK
STA 2300H
MOV A, B
STA 2301H
HLT
10
PRACTICAL 9
AIM: A SET OF 8 CURRENT READINGS IS STORED IN MEMORY LOCATIONS STARTING AT XX40 H. CHECK
EACH DATA BYTE FOR D7AND D0 BITS. IF D7 OR D0 IS 1, REJECT THE DATA BYTE, OTHERWISE STORE
THE DATA BYTE AT THE MEMORY LOCATIONS STARTING AT XX60 H.
PROGRAM:
LXI H, 2040H
MVI M, EFH
LXI D, 2060H
MVI C, 08H
BACK: MOV A, M
ANI 81H
JNZ SKIP
MOV A, M
STAX D
INX D
SKIP: INX H
DCR C
JNZ BACK
HLT
11
PRACTICAL 10
AIM: FIVE DATA BYTES ARE STORED IN MEMORY LOCATION C001H TO C005H. COUNT NUMBER OF ONES
IN EACH BYTE AND STORE THIS COUNT IN CORRESPONDING MEMORY LOCATIONS D001H TO
D005H.
PROGRAM:
LXI H, C001H
MVI M, 25H
INX H
MVI M, 45H
INX H
MVI M, 5DH
INX H
MVI M, A8H
INX H
MVI M, 1DH
LXI H, C001H
LXI D, D001H
BACK:
MOV A, M
CALL COUNT
INX H
12
INX D
MOV A, L
CPI 06
JNZ BACK
HLT
COUNT SUBROUTINE
COUNT:
MVI B, 00H
MVI C, 08H
AGAIN:
\RAR
JNC SKIP
INR B
SKIP:
DCR C
JNZ AGAIN
MOV A, B
STAX D
RET
13
PRACTICAL 11
AIM: AN ARRAY OF BINARY NUMBERS ARE STORED IN MEMORY STARTING FROM ADDRESS 3000H.
THERE ARE FIVE NUMBERS IN THE ARRAY. WRITE AN ALP WHICH FINDS OUT QUANTITY OF
POSITIVE NUMBERS, NEGATIVE NUMBERS AND ZEROS IN THE DATA ARRAY AND STORES THE
RESULT IN MEMORY LOCATION STARTING FROM ADDRESS 3050H.
PROGRAM:
LXI H, 3000H
MVI M, 25H
INX H
MVI M, 85H
INX H
MVI M, 00H
INX H
MVI M, A8H
INX H
MVI M, 1DH
LXI H, 3000H
MVI C, 0AH
MVI B, 00H
14
MVI E, 00H
MVI D, 00H
BACK:
MOV A, M
CPI 00H
JNZ NEXT
INR B
JMP LAST
NEXT:
ANI 80H
JZ NEXT1
INR E
JMP LAST
NEXT1:
INR D
LAST:
INX H
DCR C
JNZ BACK
MOV A, D
STA 3050H
MOV A, E
STA 3051H
MOV A, B
STA 3052H
HLT
15
PRACTICAL 12
AIM: A STRING OF READINGS IS STORED IN MEMORY LOCATION STARTING AT 2070H, AND THE END OF
THE STRING IS INDICATED BY THE BYTE 0DH. WRITE A PROGRAM TO CHECK EACH BYTE IN THE
STRING AND SAVE THE BYTES IN THE RANGE OF 30H AND 34H (BOTH INCLUSIVE) IN MEMORY
LOCATION STARTING FROM 2090H.
PROGRAM:
LXI H, 2070H
MVI M, 25H
INX H
MVI M, 85H
INX H
MVI M, 00H
INX H
MVI M, A8H
INX H
MVI M, 1DH
LXI D, 2090H
16
LXI H, 2070H
START:
MOV A, M
CPI 0DH
JZ LAST
CPI 30H
JC NEXT
CPI 35H
JNC NEXT
STAX D
INX D
NEXT:
INX H
JMP START
LAST:
HLT
PRACTICAL 13
AIM: THE FOLLOWING BLOCK OF DATA IS STORED IN MEMORY LOCATIONS FROM XX55H TO XX5AH.
TRANSFER THE DATA TO THE LOCATION XX80H TO XX85H IN THE REVERSE ORDER. (DATA (H) 22,
A5, B2, 99, FF, 37).
PROGRAM:
LXI H, 2055H
MVI M, 22H
INX H
MVI M, A5H
INX H
MVI M, B2H
INX H
MVI M, 99H
INX H
MVI M, FFH
INX H
MVI M, 37H
17
LXI H, 205AH
LXI D, 2080H
BACK:
MOV A, M
STAX D
DCX H
INX D
MOV A, E
CPI 86H
JNZ BACK
HLT
PRACTICAL 14
AIM: WRITE A PROGRAM FOR DISPLAYING BINARY UP COUNTER. COUNTER SHOULD COUNT NUMBERS
FROM 00H TO FFH AND IT SHOULD INCREMENT AFTER EVERY 0.5 SECOND. (ASSUME OPERATING
FREQUENCY OF 8085 EQUAL TO 2MHz.)
PROGRAM:
LXI SP, 27FFH
MVI C, 00H
BACK:
CALL DELAY
INR C
MOV A, C
CPI 00H
JNZ BACK
HLT
DELAY SUBROUTINE:
18
DELAY:
LXI D, COUNT
BACK1:
DCX D
MOV A, E
ORA D
JNZ BACK1
RET
PRACTICAL 15
AIM: WRITE ALP TO COUNT FROM 00H TO 20H WITH A DELAY OF 100 MS., BETWEEN EACH COUNT. AFTER
THE COUNT 20H, THE COUNTER SHOULD RESET ITSELF AND REPEAT THE SEQUENCE. USE
REGISTER PAIR DE AS A DELAY REGISTER. SHOW YOUR APPROXIMATE DELAY CALCULATIONS
FOR 100MS DELAY. THE CLOCK FREQUENCY IS 1 MHZ. ASSUME SUITABLE VALUE OF T STATES FOR
THE DELAY CALCULATION.
PROGRAM:
LXI SP, 27FFH
MVI C, 00H
BACK:
CALL DELAY
INR C
MOV A, C
CPI 20H
JNZ BACK
19
HLT
DELAY SUBROUTINE:
DELAY:
LXI D, COUNT
BACK1:
DCX D
MOV A, E
ORA D
JNZ BACK1
RET
PRACTICAL 16
AIM: CONVERT A 2 DIGIT BCD NUMBER STORED AT MEMORY SDDRESS 2200H INTO ITS BINARY
EQUIVALENT NUMBER AND STORE THE RESULT IN A MEMORY LOCATION 2300H.
PROGRAM:
LXI H, 2200H
MVI M, 67H
LDA 2200H
MOV B, A
ANI 0FH
MOV C, A
MOV A, B
ANI F0H
20
RRC
RRC
RRC
RRC
MOV B, A
XRA A
MVI D, 0AH
SUM:
ADD D
DCR B
JNZ SUM
ADD C
STA 2300H
HLT
PRACTICAL 17
AIM: A SET OF BCD NUMBERS ARE STORED IN MEMORY LOCATIONS STARTING FROM 2500H. WRITE AN
ALP TO CONVERT EACH BCD NUMBER TO BINARY HEX NUMBER AND STORE THE RESULT IN
MEMORY LOCATION STARTING FROM ADDRESS 4000H.
PROGRAM:
LXI H, 2500H
MVI M, 25H
INX H
MVI M, 85H
INX H
MVI M, 57H
INX H
21
MVI M, 98H
INX H
MVI M, 17H
LXI B, 4000H
LXI SP, 47FFH
MVI E, 0AH
LXI H, 2500H
NEXT:
PUSH B
MOV A, M
MOV B, A
ANI 0FH
MOV A, B
ANI F0H
RRC
RRC
RRC
RRC
MOV B, A
XRA A
MVI D, 0AH
SUM:
ADD D
DCR B
JNZ SUM
ADD C
POP B
STAX B
INX H
INX B
22
DCR E
JNZ NEXT
HLT
PRACTICAL 18
AIM: TO ADD TWO 2 DIGIT BCD NUMBERS.
PROGRAM:
LXI H, 2200H
MVI M, 39H
INX H
MVI 45H
LXI H, 2200H
23
MOV A, M
INX H
ADD M
DAA
STA 2300H
HLT
24