Sunteți pe pagina 1din 64

MICROPROCESSOR

Manual
CONTENTS

ALLOCATED
S.NO EXPERIMENT TITLE PAGE NO
TIME
1 FAMILIARIZATION OF 8085 COMMANDS 8

2 8 BIT OPERATIONS - DATA TRANSFER 4

3 8 BIT OPERATIONS - ARITHMETIC AND LOGIC 8

4 16 BIT OPERATIONS - DATA TRANSFER 4

5 16 BIT OPERATIONS - ARITHMETIC AND LOGIC 10

6 FACTORIAL, PALINDROME 4

7 FINDING LARGEST AND SMALLEST NUMBER 10

8 ASCENDING AND DESCENDING ORDER 8

9 FINDING SQUARE ROOT OF A NUMBER 4

10 WAVEFORM GENERATION 12
EX.NO 1 FAMILIARIZATION OF 8085 MP

AIM: To familiarize the 8085MP Trainer Kit & Simulation software.

EQUIPMENTS REQUIREMENT:
 8051 MC Trainer Kit Or
 CPU With MPS85 & SIM8085 Simulation Software

SIMULATION SOFTWARE TOOLS:

FILE: EDIT:

CPU : TOOLS:
MEMORY: ABOUT:

ASSEMBLE:
SIMULATION SOFTWARE PROCEDURE:
STEP:1
LOADING THE PROGRAM/EDITING THE PROGRAM
RESET(T)-INSERT MEMORY(M)
ENTER PARTICULAR MEMORY ADDRESS
PRESS NEXT(N)
ENTER THE OP-CODE
UPTO LAST CODING
END OF THE PROGRAM(HLT)
RESET(T)
STEP:2
LOADING INPUT DATA TO MEMORY
RESET(T)-INSERT MEMORY(M)
ENTER PARTICULAR ADDRESS
PRESS NEXT(N)
ENTER THE DATA
RESET(T)
STEP:3
EXECUTION OF PROGRAM
RESET(T)-EXECUTE THE PROGRAM(G)
ENTER THE STARTING ADDRESS
EXECUTE THE PROGRAM(X)
RESET(T)

STEP:4
VERIFING THE OUTPUT RESULT IN MEMORY
RESET(T)-INSERT MEMORY(M)
ENTER THE PARTICULAR ADDRESS
PRESS NEXT(N)
VERIFYING DATA OR RESULT
RESET(T)

FUNCTION KEY:
T - RESET
I - INSERT
N - NEXT
P - PREVIEW
M - INSERT MEMORY
X - EXECUTE
G - EXECUTE PROGRAM STARTING MEMORY
F1 - HELP
F3 - OP-CODE LIST
F10 - QUIT/EXIT

RESULT:

Familiarized the 8051 MC trainer Kit & Simulation Software (like Sim8085 & MPS85) .
EX.NO 2 8 BIT OPERATION - DATA TRANSFER

AIM: To write program & execute following operation

ii) Transfer the 8 bit data to register to register ,


iii) Transfer the 8 bit data to register to external memory
iv) Exchange the 8 bit data to register to register & register to external memory

EQUIPMENTS REQUIREMENT:

 8051 MC Trainer
 CPU With Keil Simulation

Transfer The 8 Bit Data To Register To Register

ALGORITHM:

Load the data to register

Move the data immediately to the accumulator

Move the data from accumulator to registers B,C,D,E,H,L

Stop the program

PROGRAM :

ADDRESS LABEL MNEMONICS OP-CODE COMMENTS


8000 MVI A,F0 3E MOVE IMMEDIATE TO A
8001 F0 F0 DATA
8002 MOV B,A 47 MOVE A TO B
8003 MOV C,A 4F MOVE A TO C
8004 MOV D,A 57 MOVE A TO D
8005 MOV E,A 5F MOVE A TO E
8006 MOV H,A 67 MOVE A TO H
8007 MOV L,A 6F MOVE A TO L
8008 HLT 76 STOP THE PROGRAM
FLOWCHART

START

LOAD THE DATA TO ACCUMULATOR

MOVE THE DATA TO B REGISTER

MOV THE DATA TO C REGISTER

MOV THE DATA TO E RERISTER

MOV THE DATA TO H REGISTER

MOV THE DATA TO L REGISTER

HLT

RESULT:
BEFORE EXECUTION AFTER EXECUTION:

Register Data
Register Data
A FO B F0
C F0
D F0
E F0
H F0
L F0
2)Transfer The 8 Bit Data To Register To External Memory .

ALGORITHM:
load the data to memory 9000
store the data in 9102
stop the program

FLOW CHART:

START

LOAD THE DATA TO MEMORY 9000

STORE THE DATA I N 9102

HLT

PROGRAM:
ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS
8000 LDA 3A LOAD THE DATA IN A
8001 00 00
8002 90 90
8003 STA 32 STORE THE DATA IN 9102
8004 02 02
8005 91 91
8006 HLT 76 STOP THE PROGRAM

RESULT:
BEFORE EXECUTION: AFTER EXECUTION:

MEMORY DATA
REGISTER DATA
9102 2A
9000 2A

3) Exchange the 8 Bit Data to Register to Register

ALGORITHM:

load the data to accumulator


exchange the data to registers B,C,D,E,H,L.
Stop the program

FLOW CHART:

START

LOAD THE DATA TO ACCUMULATOR

EXCHANGE THE DATA TO B REGISTER

EXCHANGE THE DATA TO C REGISTER

EXCHANGE THE DATA TO E RERISTER

EXCHANGE THE DATA TO H REGISTER

EXCHANGE THE DATA TO L REGISTER

HLT
PROGRAM:

ADDRESS LABEL MNEMONICS OP-CODE COMMENTS


8000 MVI A,F0 3E MOVE IMMEDIATE TO A
8001 F0 F0 DATA
8002 MOV B,A 47 MOVE A TO B
8003 MOV C,A 4F MOVE A TO C
8004 MOV D,A 57 MOVE A TO D
8005 MOV E,A 5F MOVE A TO E
8006 MOV H,A 67 MOVE A TO H
8007 MOV L,A 6F MOVE A TO L
8008 HLT 76 STOP THE PROGRAM

RESULT:
BEFORE EXECUTION; AFTER EXECUTION:

Register Data
Register Data
a 2A B 2A
C 2A
D 2A
E 2A
H 2A
L 2A
3) EXCHANGE THE DATA TO REGISTER TO EXTERNAL MEMORY

ALGORITHM:
load the data to memory 9000
store the data in 9102
stop the program

FLOW CHART:

START

LOAD THE DATA TO MEMORY 9000

STORE THE DATA I N 9102

HLT

PROGRAM:
ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS
8000 LDA 3A LOAD THE DATA IN A
8001 00 00
8002 90 90
8003 STA 32 STORE THE DATA IN 9102
8004 02 02
8005 91 91
8006 HLT 76 STOP THE PROGRAM

RESULT:
BEFORE EXECUTION: AFTER EXECUTION:
memory Data memory Data

9000 2A 9102 2A
EX.NO 3 8 BIT ARITHMETIC OPERATION

AIM: To write program & execute following operation

1. Two 8 bit addition with carry & Subtraction with borrow


2. Two 8 bit multiplication & Division
3. Two 8 bit AND ,OR ,NOT XOR & Rotate Left & right

EQUIPMENTS REQUIREMENT:
 8051 MC Trainer Kit Or
 CPU With Keil Simulation

TWO 8 BIT ADDITION WITH CARRY.

ALGORITHM:

Load the data

Move to accumulator

Increment the register

Add the data

Store the value

Check the carry

Increment the counter

Store the data

Stop the program


START

LOAD THE DATA IN HL REGISTER

MOVE THE DATA TO ACCUMULATOR

INCREMENT THE HL REGISTER

ADD THE DATA

STORE THE DATA IN 9100

CHECK,IF CARRY IS ZERO

JUMP IF NO
CARRY

INCREMENT THE CARRY


I

MOVE TO ACCUMULATOR

STORE THE DATA IN 9101

HLT

`
PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LHI H 21 LOAD HL PAIR 9000
8001 00 00
8002 90 90
8003 MOV A,M 7E MOVE MEMORY TO A
8004 INX H 23 INCREMENT REGISTER PAIR
8005 ADC M 8E ADD WITH CARRY
8006 STA 32 STORE IN 9100
8007 00 00
8008 91 91
8009 JNC LOOP D2 JUMP IF NON ZERO
800A 11
800B 80
800C INR C 0C INCREMENT C
800D MOV A,C 79 MOVE C TO A
800E STA 32 STORE IN 9101
800F 01 01
8010 91 91
8011 LOOP HLT 76 STOP THE PROGRAM

RESULT:

BEFORE EXECUTION : AFTER EXECUTION

MEMORY DATA MEMORY DATA

9000 02 9100 12
9001 0F 9101 FF
1) TWO 8 BIT SUBTRACTION WITH BORROW

ALGORITHM:

Load the data

move to accumulator

increment the register

subtract the data

store the value

check the borrow

decrement the counter

store the data

Stop the program

PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LHI H 21 LOAD HL PAIR 9000
8001 00 00
8002 90 90
8003 MOV A,M 7E MOVE MEMORY TO A
8004 INX H 23 INCREMENT REGISTER PAIR
8005 SUB M 96 SUBTRACT WITH BORROW
8006 STA 32 STORE IN 9100
8007 00 00
8008 91 91
8009 JNC LOOP D2 JUMP IF NON ZERO
800A 11
800B 80
800C DCR C 0D DECREMENT C
800D MOV A,C 79 MOVE C TO A
800E STA 32 STORE IN 9101
800F 01 01
8010 91 91
8011 LOOP HLT 76 STOP THE PROGRAM
FLOWCHART

START

LOAD THE DATA IN HL REGISTER

MOVE THE DATA TO ACCUMULATOR

INCREMENT THE HL REGISTER

SUB THE DATA

STORE THE DATA IN 9100

CHECK,IF BORROW IS ZERO

STORE THE DATA IN 9100

DECREMENT THE COUNTER


I

MOVE TO ACCUMULATOR

STORE THE DATA IN 9101

HLT
RESULT:

BEFORE EXECUTION : AFTER EXECUTION

MEMORY DATA MEMORY DATA

9000 02 9100 F3
9001 0F 9101 FF

TWO 8 BIT MULTIPLICATION

ALGORITHM:
Load the data to HL register pair
Move B to memory
Increment H
Move M to C
Decimal adjust accumulator
Add B
Jump on non carry
Increment D register
Decrement C
Jump if non zero
Store the data
Move D to A
Store the data
Stop the program
START

LOAD THE DATA IN HL REGISTER

MOVE THE DATA MEMORY TO B

INCREMENT THE HL REGISTER

MOVE M TO C

DECIMAL ADJUST ACCUMULATOR

ADD B

INCREMENT D REGISTER

DECREMENT C

JUMP IF NO
CARRY

STORE THE DATA

MOVE D TO A

STORE THE DATA

HLT
PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LXI H 21 LOAD HL PAIR
8001 00
8002 90
8003 MOV B,M 46 MOVE MEMORY TO B
8004 INX H 23 INCREMENT REGISTER
PAIR
8005 MOV C,M 4E MOVE M TO C
8006 DAA 27 DECIMAL ADJUSTMENT A
8007 ADD B 80 ADD B
8008 JNC LOOP D2 JUMP IF NON CARRY
8009 0C
800A 80
800B INR D 14 INCREMENT D
800C DCR C 0D DECREMENT C
800D JNZ LOOP C2 JUMP IF NON ZERO
800E 06
800F 80
8010 STA 9100 32 STORE IN 9100
8011 00
8012 91
8013 MOV A,D 7A MOVE D TO A
8014 STA 9101 32 STORE IN 9101
8015 01
8016 91
8017 HLT 76 STOP THE PROGRAM

RESULT:

BEFORE EXECUTION: AFTER EXECUTION

MEMORY DATA
MEMORY DATA
9000 02
9001 02 9100 04
9101 00
TWO 8 BIT DIVISION

ALGORITHM:
Load the hl register
Move to B
Get the second data &load in A
Compare the two numbers
Subtract 2 numbers
Increment the value of carry
Check the carry
Stop the program

PROGRAM :

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LXI H 21
8001 00
8002 90
8003 MOV B,M 46 GET THE DIVIDEND IN B-REG
8004 MVI C,00 0E CLER C-REG FOR QOUTIENT
8005 00
8006 INX H 23 INCREMENT H-REG
8007 MOV A,M 7E GET THE DIVISOR IN A-REG
8008 NEXT: CMP B B8 COMPARE A-REG WITH B-REG
8009 JC LOOP DA JUMP ON CARRY LOOP
800A SUB B 11 SUBTRACT A-REG FROM B-REG
800B INR C 18 INCREMENT C-REG
800C 90
800D 0C
800E JMP NEXT C3 JUMP TO NEXT
800F 08
8010 80
8011 LOOP: STA 32 STORE THE REMINDER IN MEMORY
8012 02
8013 90
8014 MOV A,C 79
8015 STA 32 STORE THE QUOTIENT IN MEMORY
8016 03
8017 90
8018 HLT 76 STOP THE PROGRAM
START

LOAD THE DATA IN HL REGISTER

MOVE THE DATA MEMORY TO B

CLEAR C REGISTER

INCREMENT H REGISTER

MOVE THE DATA MEMORY TO A -REG

COMPARE B REGISTER

JUMP IF NO
CARRY

SUBTRACT B REGISTER

INCREMENT C

JUMP TO NEXT

STORE THE DATA

MOVE A TO C

STORE THE DATA

HLT
RESULT: BEFORE EXECUTION : AFTER EXECUTION

MEMORY DATA MEMORY DATA

9000 05 9002 01
9001 06 9003 01

TWO 8 BIT AND

ALGORITHM:

load the data to hl pair


mov the data to b
increment hl pair
move b to a
and register
store the data
stop the program

FLOW CHART:
START

LOAD THE DATA IN HL REGISTER

MOVE THE DATA MEMORY TO B

INCREMENT H REGISTER

MOVE B TO A

AND REGISTER WITH MEMORY

STORE THE DATA

HLT

PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LXI H 21 LOAD HL PAIR
8001 00
8002 90
8003 MOV B,M 46 MOVE M TO A
8004 INX H 23
8005 MOV A,B 78
8006 ANA M A6
8007 STA 32
8008 HLT 76
RESULT:

BEFORE EXECUTION : AFTER EXECUTION

MEMORY DATA MEMORY DATA

9000 02 9100 04
9001 02

TO 8 BIT OR LOGIC

ALGORITHM:

load the data


mov the data A to b
OR register with memory
Store the data
Stop the program

PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 MVI A,00 3E
8001 00
8002 MOV A, B 78
8003 ORA B6
8004 STA 32
8005 00
8006 91
8007 HLT 76
START

LOAD THE DATA

MOVE THE DATA B To A

OR REGISTER WITH MEMORY

STORE THE DATA

HLT

RESULT:

BEFORE EXECUTION : AFTER EXECUTION

MEMORY DATA MEMORY DATA

9000 01 9100 03
9001 02

TO EXECUTE THE PROGRAM WITH NOT FUNCTION

ALGORITHM:

load the data


mov the data A to b
compare the data with accumulator
Store the data
Stop the program
FLOW CHART:

START

LOAD THE DATA

MOVE THE DATA B To A

COMPARE WITH ACC

STORE THE DATA

HLT

PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 MVI A,00 3E
8001 00
8002 MOV A, B 78
8003 CMP A BF
8004 STA 32
8005 00
8006 91
8007 HLT 76

RESULT:

BEFORE EXECUTION : AFTER EXECUTION


MEMORY DATA MEMORY DATA

9000 01 9100 01
EX.NO 4 16 BIT OPERATION – DATA TRANSFER

AIM: To write program & execute following operation


1. To transfer the 16bit data register to external memory
2. To transfer the 16 bit external memory to register

EQUIPMENTS REQUIREMENT:

 8051 MC Trainer Kit Or


 CPU With Keil Simulation

TO TRANSFER THE 16BIT DATA REGISTER TO EXTERNAL MEMORY

ALGORITHM:

load the HL register pair


load the De register pair
exchange the data
Stop the program

FLOW CHART:

START

LOAD THE HL REGISTER PAIR

LOAD THE DE REGISTER PAIR

EXCHANGE THE DATA

STORE THE DATA

HLT
PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LXI H 21
8001 0F
8002 F0
8003 LXI D 11
8004 23
8005 HLT 76

RESULT:

BEFORE EXECUTION : AFTER EXECUTION

REGISTER Data REGISTER Data


HL 0FF0
DE 2332 HL 2332
DE 0FF0

TO TRANSFER THE 16 BIT EXTERNAL MEMORY TO REGISTER

ALGORITHM:

load the data


exchange the data
stop the program

FLOW CHART:
START

LOAD THE DATA

EXCHANGE THE DATA

HLT

PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LDA 3A
8001 00
8002 90
8003 XCHG EB
8004 HLT 76

RESULT:

BEFORE EXECUTION :

ADDRESS DATA
9000 FF
9001 12

AFTER EXECUTION

REGISTER Data

H FF
L 12
EX.NO 5 8 BIT LOGICAL OPERATION

AIM: To write program & execute following operation

1. Two 16 bit addition with carry & Subtraction with borrow


2. Two 16 bit AND ,OR ,NOT XOR & Rotate Left & right

EQUIPMENTS REQUIREMENT:

 8051 MC Trainer Kit Or


 CPU With Keil Simulation

TWO 16 BIT ADDITION WITH CARRY

ALGORITHM:
load the data to hl register pair
exchange the data to de
load the hl pair
double addition
jnc loop
increment c
move a to c
store hl pair data
stop

PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LHLD 2A LOAD HL PAIR DIRECT
8001 00
8002 90
8003 XCHG EB EXCHANGE TO DE
8004 LHLD 2A LOAD HL PAIR DIRECT
8005 02
8006 90
8007 DAD D 19 DOUBLE ADDITION
8008 JNC LOOP D2 JUMP ON NO CARRY
8009 13
800A 80
800B INR C 0C INCREMENT C
800C MOV A,C 79 MOV C TOA
800D STA 32 STORE IN 9103
800E 03
800F 91
8010 SHLD 22 STORE HL DIRECTLY IN 9100
8011 00
8012 91
8013 LOOP: SHLD 22 STORE HL DIRECTLY IN 9100
8014 00
8015 91
8016 HLT 76 STOP THE PROGRAM
START

LOAD THE DATA IN HL REGISTER

EXCHANGE THE HL PAIR TO DE PAIR

LOAD THE HL REGISTER DIRECTLY

DOUBLE ADDITION WITH D

JUMP IF NO
CARRY

INCREMENT THE C REGISTER

MOVE THE DATA FROM C TO A

STORE IN 9103

STORE HL DIRECTLY IN 9100

STORE HL DIRECTLY IN 9100

HLT
RESULT:

BEFORE EXECUTION : AFTER EXECUTION

MEMORY DATA
MEMORY DATA
9000 50
9001 40
9002 20 9100 90
9003 10 9101 70

TWO 16 BIT SUBTRACTION WITH BORROW

ALGORITHM:
load the data to hl register pair
exchange the data to de
load the hl pair
subtraction
jnc loop
increment c
mov a to c
store hl pair data
stop

PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LHLD 2A LOAD HL PAIR DIRECT
8001 00
8002 90
8003 XCHG D EB EXCHANGE TO DE
8004 LHLD 2A LOAD HL PAIR DIRECT
8005 02
8006 90
8007 MOV A,E 7B MOVE E TO A
8008 SUB L 95 SUBTRACT L
8009 STA 32 STORE IN 9001
800A 01
800B 90
800C MOV A,D 7A MOV D TO A
800D SUB H 94 SUBTRACT H
800E STA 32 STORE IN 9102
800F 02
8010 91
8011 HLT 76 STOP THE PROGRAM

START

LOAD THE DATA IN HL REGISTER

EXCHANGE THE HL PAIR TO DE PAIR

LOAD THE HL REGISTER DIRECTLY

MOVE THE DATA FROM E TO A

SUBTRACT L

STORE THE DATA IN 9101

MOVE THE DATA FROM D TO A

SUBTRACT H

STORE THE DATA IN 9102

HLT

FLOWCHART
RESULT :

BEFORE EXECUTION AFTER EXECUTION


MEMORY DATA MEMORY DATA
9000 01 9100 02
9001 01 9101 12
9002 22 9102 01
9003 F0
EX.NO 6 PALINDROME & FACTORIAL VALUE

AIM: To write program & execute following operation

1. To find the given number palindrome or not


2. To find the factorial of given number

EQUIPMENTS REQUIREMENT:
 8085 MP Trainer Kit Or
 CPU With Sim85 Simulator Or Mps 85 Assembler

ALGORITHM:

1.To find the given number palindrome or not

 Load data to accumulator.


 Copying the data to B register.
 Rotating the data left four times.
 Compare the B register value.
 If it is equal, display FF.
 If not, display 00.
 Stop the program.
FLOW CHART:

START

LOAD THE DATA TO


ACCUMULATOR

COPYING DATA TO B REGISTER

ROTATING THE VALUE LEFT 4 TIMES

COMPARING TE VALUE WITH


ACCUMULATOR VALUE

IF IT IS EQUAL,DISPLAY FF

IF NOT, DISPLAY 00

STOP
PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS

8000 LDA 9000 3A Load value to accumulator


00
90
8003 MOV B,A 47 Moving value to B register
8004 RLC 07 Rotating to left
8005 RLC 07
8006 RLC 07
8007 RLC 07
8008 CMP B B8 Comparing
8009 JNZ LOOP C2 Jump when non zero
800A MVI A,FF 3E
FF
800C STA 9100 32 Storing accumulator value
00 to 9100
91
800F JMP STOP C3 Jump
8010 Loop: MVI A,OO 3E
00
8011 STA 9100 32 Storing accumulator value
00 to 9100
91
8012 Start: HLT 76 Stop the program

RESULT:

BEFORE EXECUTION AFTER


EXECUTION

MEMORY DATA MEMORY DATA


9000 66 9100 FF
9000 67 9100 00
AIM: To write program & execute (To find the factorial of given number)

EQUIPMENTS REQUIREMENT:
 8085 MP Trainer Kit Or
 CPU With Sim85 Simulator Or Mps 85 Assembler

ALGORITHM:
 Load memory value to H-register.
 Move memory value to C-register.
 Move C-register value to B-register.
 Addition
 Decrement B-register value.
 Copy accumulator value to memory.
 Load immediate value to accumulator.
 Decrement C-register.
 Stop the program.
FLOWCHART:

START

LOAD MEMORY VALUE TO H-


REGISTER

MOVE MEMORY VALUE TO C-REGISTER

MOVE C-REGISTER VALUE TO B


REGISTER

ADDITION

DECREMENT B-REGISTER VALUE

COPY ACCUMULATOR VALUE TO MEMORY

LOAD IMMEDIATE VALUE TO ACCUMULATOR

DECREMENT C-REGISTER

STOP
PROGRAM:

COMMENT
ADDRESS LABEL MNEMONICS OPCODE
(MEANING)
21
8000
LXI H,9000 00 H←M
90

8003 MOV C,M 4E B ← ACC


Decrement c register
8004 DCR C 0D
value
8005 Loop: MOV B,C 41 B←C
8006 Loop1: ADD M 86 ACC+M
Decrement b register
8007 DCR B 05
value
8008 JNZ LOOP1 C2 jump on non zero
8009 MOV M,A 77 M ← ACC
3E loading value to
800A MVI A,00
00 accumulator
Decrement c-register
800C DCR C 0D
value
Jump to loop on non
800D JNZ LOOP C2
zero
800E HLT 76 Stop the program

RESULT:
BEFORE EXECUTION: AFTER EXECUTION

MEMORY DATA MEMORY DATA

9000 05 9100 78
EX.NO 7 Finding Largest and Smallest Number

AIM: To write program & execute following operation

 To find largest & Smallest number

EQUIPMENTS REQUIREMENT:
 8085 MP Trainer Kit
 CPU With 8085 Simulation

ALGORITHM:
 Load data to HL register pair
 Copying value to accumulator
 Incrementing address of HL pair
 Copying data to B register
 Comparing B register value with accumulator
 If accumulator value is larger ,store it to memory
 If not, store B register value to memory
 If they are equal store data ‘FF’ to memory
FLOW FLOW CHART: START

LOAD DATA TO HL
PAIR

COPY VALUE TO ACCUMULATOR

INCREMENTING ADDRESS OF HL
PAIR

COPYING DATA TO B-REGISTER

COMPARE
A &B
VALUES

IF A VALUE IS LARGER, STORE IT


TO MEMORY

IF NOT STORE B REGISTER VALUE


TO MEMORY

STOP
PROGRAM:

COMMENT
ADDRESS LABEL MNEMONICS OPCODE
(MEANING)
21 LOADING
8000
LXI H,9000 00 VALUE TO HL
90 PAIR
8003 MOV A,M 7E ACC ← M
INCREMENTING
8004 INX H 23 THE ADDRESS

8005 MOV B,M 46 B←M


8006 CMP B B8 COMPARING
8007 JNC LOOP: D2
8008 MOV A,B 78 ACC ← B
32 STORING
8009 STA 9100 00 VALUE TO
91 MEMORY
3A
800C LDA 9000 00
90
32 STORING
800F STA 9101 01 VALUE TO
91 MEMORY
8012 JMP LOOP1 C3 JUMP
3A
8013 LOOP: LDA 9000 00
90
32 STORING
8016 STA 9100 00 VALUE TO
91 MEMORY
3A
8019 LDA 9001
01
90
32 STORING
8022 STA 9101 01 VALUE TO
91 MEMORY
STOP THE
8025 LOOP1 76
PROGRAM

RESULT:

BEFORE EXECUTION AFTER


EXECUTION

MEMORY DATA
MEMORY DATA

9100 69
9000 45

9101 45
9001 69
EX.NO 8 ASCENDING AND DESCENDING ORDER

AIM: To write program & execute following operation ( arrange given array ascending order)

EQUIPMENTS REQUIREMENT:

 8085 MP Trainer Kit Or


 CPU With SIM85 Simulation OR MPS 85 Assembler

ALGORITHM:

1. Initialize HL pair as memory pointer.


2. Get the count at 4200 into c – register.
3. Copy it in D-register (for bubble sort (N-1) times required).
4. Get the first value in a-register.
5. Compare it with the value at next location.
6. If they are out of order, exchange the contents of A-register and memory.
7. Decrement D-register content by 1.
8. Repeat steps 5 and 7 till the value in D-register become zero.
9. Decrement C-register content by 1.
10. Repeat steps 3 to 9 till the value is in C-register becomes zero.
FLOW CHART
START

Load the HL pair to the


memory

Copy the value to c register

Copy c-register value to d-register

Copy the first value in A-register

Compare the value

If values are equal

Decrement d-register content by 1

D-REG
= ZERO

Decrement c register by 1

C-REG =
ZERO

STOP
PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LXI H,9000 21 Loading HL pair to
8001 00 memory
8002 90
8003 MOV C,M 4E Moving memory value
to c register
8004 DCR C 0D Decrementing c register
8005 REPEAT: MOV D,C 51 Moving value from C to
D register
8006 LXI H,9001 21 Loading the HL pair
8007 01
8008 90
8009 LOOP: MOV A,M 7E Moving value from
memory to accumulator
800A INX H 23 Incrementing H register
800C CMP M BE Comparing memory
with accumulator
800F JC SKIP DA Jump on non carry
8010 MOV B,M 46 Moving value from
memory to B register
8011 MOV M,A 77 Moving accumulator
value to memory
8012 DCX H 2B Decrementing H
register
8013 MOV M,B 70 Moving value from B
register to memory
8014 INX H 23 Incrementing H register
8015 SKIP: DCR D 15 Decrementing D
register
8016 JNZ LOOP C2 Jump on not zero
8017 DCR C 0D Decrementing C
register
8018 JNZ REPEAT C2 Jump on not zero
8019 HLT 76 Stop the program

RESULT:

BEFORE EXECUTION AFTER EXECUTION

MEMORY DATA

9000 05
9001 05
9002 04
9003 03
9004 02
MEMORY DATA
9005 01
9000 05
9001 01
9002 02
9003 03
9004 04
9005 05

AIM: To write program & execute (Arrange given array a descending Order)

EQUIPMENTS REQUIREMENT:
 8085 MP Trainer Kit Or
 CPU With SIM85 Simulation OR MPS 85 Assembler

ALGORITHM:

1. Initialize HL pair as memory pointer.


2. Get the count at 4200 into c – register.
3. Copy it in D-register (for bubble sort(N-1)times required).
4. Get the first value in a-register.
5. Compare it with the value at next location.
6. If they are out of order, exchange the contents of A-register and memory.
7. Decrement D-register content by 1.
8. Repeat steps 5 and 7 till the value in D-register become zero.
9. Decrement C-register content by 1.
10. Repeat steps 3 to 9 till the value is in C-register becomes zero.
START

FLOW CHART
Load the HL pair to the
memory

Copy the value to c register

Copy c-register value to d-register

Copy the first value in A-register

Compare the value

If values are equal

Decrement d-register content by 1

D-REG
!= ZERO

Decrement c register by 1

C-REG =
ZERO

STOP
PROGRAM:

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 LXI H,9000 21 Loading HL pair to
8001 00 memory
8002 90
8003 MOV C,M 4E Moving memory value
to c register
8004 DCR C 0D Decrementing c register
8005 REPEAT: MOV D,C 51 Moving value from C to
D register
8006 LXI H,9001 21
8007 01 Loading the HL pair
8008 90
8009 LOOP: MOV A,M 7E Moving value from
memory to accumulator
800A INX H 23 Incrementing H register
800B CMP M BE Comparing memory
with accumulator
800C JNC SKIP DA Jump on non carry
800D MOV B,M 46 Moving value from
memory to B register
800E MOV M,A 77 Moving accumulator
value to memory
800F DCX H 2B Decrementing H
register
8010 MOV M,B 70 Moving value from B
register to memory
8011 INX H 23 Incrementing H register
8012 SKIP: DCR D 15 Decrementing D
register
8013 JNZ LOOP C2 Jump on not zero
8014 DCR C 0D Decrementing C
register
8015 JNZ REPEAT C2 Jump on not zero
8016 HLT 76 Stop the program

RESULT: BEFORE EXECUTION AFTER EXECUTION

MEMORY DATA
9000 05
9001 01
9002 02
9003 03
9004 04 MEMORY DATA

9005 05
9000 05
9001 05
9002 04
9003 03
9004 02
9005 01
EX.NO 9 Finding Square root of a Number

AIM: To write program & execute following operation

 To find the Finding Square root of a Number

EQUIPMENTS REQUIREMENT:
 8085 MP Trainer Kit or
 CPU With Keil Simulation

ALGORITHM:
 Loading value(Y) TO accumulator
 Copying the accumulator value to B register
 Loading immediate data to C register
 Call division subroutine to get initial value in the d register.
 Save the initial value in E register
 Get the dividend (Y) in A-register
 Get divisor (X)in C-register
 Call division subroutine to get in D
 Move D value(Y/X) to A-register.
 Get ((Y/X) +X) in A-register.
 Get the divisor in C-register.
 Get x in A-register
 Compare X and XNEW.
 If XNEW is not equal to X, then repeat.
 Save the square rot in memory
FLOW CHART

START

LOAD THE DATA


TO ACCUMULATOR

COPYING DATA TO B REGISTER

LOADING IMMEDIATE VALUE


TO C-REGISTER

CALL DIVISION SUBROUTINE


TO GET INITIAL VALUE

COPY VALUE TO E REGISTER

LOADING SECOND VALUE TO


ACCUMULATOR

COPY D-REGISTER VALUE TO C


REGISTER

COPY D REGISTER VALUE TO


ACCUMULATOR

AD ACCUMULATOR VALUE TO E
REGISTER VALUE

COMPARE D REGISTER VALUE


WITH ACCUMULATOR VALUE

STORE ACCUMULATOR VALUE TO


MEMORY

STOP
PROGRAM:

COMMENT
ADDRESS LABEL MNEMONICS OPCODE
(MEANING)
8000 LDA 9000 3A ACC←0xFF
00
90

8003 MOV B,A 47 B ← ACC

0E
8004 MVI C,02H C ← ACC
O2

8006 CALL DIV CD D ← ACC

8007 REP MOV E,D 5A E←D

8008 MOV A,B 78 A←B

8009 MOV C,D 4A C←D

800A CALL DIV CD CALL

800B MOV A,D 7A ←

800C ADD E 83 ADDITION

0E LOADING
800D MVI C,02H
02 VALUE TO C

800F CALL DIV CD CALL

8010 MOV A,E 7B A←E

8011 CMP D BE COMPARE

8012 JNZ REP C2

32
8013 STA 9100 00 M←A
91

8016 HLT 76 HALT PRG

RESULT:
BEFORE EXECUTION AFTER
EXECUTION
MEMORY DATA
MEMORY DATA 9100 0A
9000 64
EX.NO 10 GENERATE THE SQUARE WAVE ,TRIANGULAR & STAIR CASE WAVE

AIM: To write program to generate ( Square ,triangle & Staircase )waveforms & execute

EQUIPMENTS REQUIREMENT:

 8085 trainer kit.


 DAC Interface Board.

ALGORITHM:

(a)Square wave generation

1. Load the initial value 00) to accumulator and move it to DAC.


2. Call the delay program.
3. Load the final value (FF) to accumulator and move it to DAC.
4. Call the delay program.
5. Repeat steps 2 to 5.

(b)Stair case wave form

1. Load the initial value to accumulator .


2. Move the accumulator content to DAC.
3. Increment the accumulator content by 1.
4. Repeat steps 2 to 5.

(c)Triangular wave generation

1. Load the initial value (00) to accumulator.


2. Move the accumulator content to DAC.
3. Increment the accumulator content by 1.
4. If the accumulator content is zero processed to next step. Else go to next step.
5. Load value (FF) to accumulator .
6. Move the accumulator content to DAC.
7. Decrement the accumulator content by 1.
8. If the accumulator content is zero go to step2. Else go to step 7.
FLOW CHART:

[Square Wave Generation]

START

load the accumulator

CALL the delay program

Load the accumulator (2nd value)

CALL the delay program

[Staircase Wave Generation]

START

Load value to
accumulator

Move the accumulator content to C

Incrementing the accumulator by 1


TRIANGULAR WAVE GENERATION

START

Load the accumulator

Move the accumulator content to DAC

Incrementing the value

If acc is
zero

Load the value to accumulator(FF)

Copying accumulator content to DAC

Decrementing the accumulator value.

If acc is
zero
PROGRAM:

[SQUARE WAVE GENERATION]

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8000 MVI A,00 3E Copying the data to
accumulator
8001 00
8002 OUT D3
8003 DELAY CALL CD Call a subroutine
8004 JMP C3 jump
8005 DELAY MVI B,05 06 Moving the data to
accumulator
8007 05
8006 LOOP 1 MVI C,FF 0E Copying the data to
accumulator
8007 FF
8008 LOOP2 DCR C 0D Decrementing C
register
8009 JNZ C2 Jump on not zero
800A DCR B 05 Decrementing B
register
800B JNZ C2 Jump on not zero
800C RET C9 Return from subroutine

[STAIRCASE WAVE GENERATION]

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8001 MVI A,00 3E Moving the data to
accumulator
8002 OUT D3
8003 INR A 3C Incrementing the accumulator
value
8004 JNZ C2 Jump on not zero
8005 JMP C3 jump
[TRIANGULAR WAVE GENERATION]

ADDRESS LABEL MNEUMONICS OP-CODE COMMENTS


8001 MVI L,00 2E Moving the data to register
8002 00
8003 LOOP1 MOV A,L 7D Moving data from L register to
accumulator
8004 INR L 2C Incrementing L register
8005 JNZ C2 Jump on to non zero
8006 MVI L,FF 2E Moving the value (FF) to L register
8007 FF
8008 LOOP2 MOV A,L 7D Moving data from L register to
accumulator
8009 OUT D3
800A DCR L 2D Decrementing L register
800B JNZ C2 Jump on not zero
800C JMP C3 Jump

RESULT:

Thus the square, triangular and staircase wave form were generated.

S-ar putea să vă placă și