[go: up one dir, main page]

0% found this document useful (0 votes)
17 views25 pages

Mi Lab Manual

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 25

APOLLO INSTITUTE OF ENGINEERING & TECHNOLOGY

Certificate
This is to certify that
Mr. /Ms________________________________________________________
Enrollment No.______________________ of B.E. ______________Semester
__________________________Branch has satisfactorily completed the Experiments in
MICROPROCESSOR AND INTERFACING.

Date of Submission: ____________

_______________ _________________

Lab in Charge HOD


MICROPROCESSOR AND INTERFACING (3160712)
Sr.
Practical Name Sign
No.

1 To store 8 bit data.


2 To exchange the contents of memory locations.
3 (a) To add two 8 bit numbers.
(b) To add two 16 bit numbers.
4 (a) To subtract two 8 bit numbers.
(b) To subtract two 16 bit numbers.
5 (a) To increment and decrement of data.
(b) To find 1’s and 2’s complement of number.
6 To alter the contents of flag register.
7 (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.
8 Calculate the sum of series of numbers.
A set of 8 current readings is stored in memory locations starting at XX40 H. Check each data byte
9 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.
Five data bytes are stored in memory location C001h to C005h. Count number of ones in each byte
10
and store this count in corresponding memory locations D001h to D005h.
An array of binary numbers are stored in memory starting from address 3000h. There are 10 numbers
11 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.
A string of readings is stored in memory location starting at 2070h, and the end of the string is
12 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 39h (both inclusive) in memory location starting from 2090h.
The following block of data is stored in memory locations from XX55h to XX5Ah. Transfer the data
13
to the location XX80h to XX85h in the reverse order. (Data (H)22,A5,B2,99,FF,37)
Write a program for displaying binary up counter. Counter should count numbers from 00h to FFh
14
and it should increment after every 0.5 second.
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.
15
Show your approximate delay calculations for 100ms delay. The clock frequency is 1 MHz. Assume
suitable value of T states for the delay calculation.
Convert a 2 digit BCD number stored at memory address 2200h into its binary equivalent number and
16
store the result in a memory location 2300h.
A set of BCD numbers are stored in memory locations starting from 2500h. Write an ALP to convert
17 each BCD number to Binary Hex number and store the result in memory location starting from
address 4000h.
18 To add two 2 digit BCD numbers.

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) TO STORE 8 BIT DATA IN REGISTER.


MVI A, 52H
MOV B, A
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

You might also like