0% found this document useful (0 votes)
31 views11 pages

Array Manipulation in 8085 Assembly

The document describes various bitwise operations and instructions in 8085 microprocessor assembly language like ANA, ANI, XRA, XRI, ORA, ORI, RLC, RRC, RAL, RAR, CMA, CMC, STC. It also discusses techniques to check status of particular bits like using rotate instructions and checking carry flag or masking and comparing.

Uploaded by

Zalak Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views11 pages

Array Manipulation in 8085 Assembly

The document describes various bitwise operations and instructions in 8085 microprocessor assembly language like ANA, ANI, XRA, XRI, ORA, ORI, RLC, RRC, RAL, RAR, CMA, CMC, STC. It also discusses techniques to check status of particular bits like using rotate instructions and checking carry flag or masking and comparing.

Uploaded by

Zalak Patel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Department of Electronics & Communication Engineering

LABORATORY SESSION – 5
INSERTING & DELETING NOS. FROM ARRAY

F EW A D DI TI O N AL I NS T R U C TI O N S

OPCODE OPERAND ADDRESSING D E S C R I PT I O N


MODE
LOGICAL OPERATIONS
ANA R REGISTER THE CONTENTS OF THE ACCUMULATOR ARE
M INDIRECT L O G I C A L L Y AND E D W I T H T H E C O N T E N T S O F T H E
O P E R A N D ( R E GI S T E R O R M E M O R Y ), A N D T H E
R E S U L T I S PL A C E D I N T H E A C C U M U L A T O R . I F T H E
OPERAND IS A MEMORY LOCATION , ITS
A D D R E S S I S S P E C I F I E D B Y T H E C O N T E N T S O F HL
R E GI S T E R S . S, Z, P A R E M O D I F I E D T O R E F L E C T
T H E R E S U L T O F T H E O P E R A T I O N . CY I S R E S E T .
AC I S S E T .

E X A M PL E : ANA B O R ANA M

ANI DATA IMMEDIATE THE CONTENTS OF THE ACCUMULATOR ARE


L O G I C A L L Y AND E D W I T H T H E 8- B I T D A T A
( O P E R A N D ) A N D T H E R E S U L T I S PL A C E D I N T H E
A C C U M U L A T O R . S, Z, P A R E M O D I F I E D T O
R E F L E C T T H E R E S U L T O F T H E O PE R A T I O N . CY I S
R E S E T . AC I S S E T .

E X A M PL E : ANI 86H

XRA R REGISTER THE CONTENTS OF THE ACCUMULATOR ARE


M INDIRECT E X C L U S I V E OR E D W I T H T H E C O N T E N T S O F T H E
O P E R A N D ( R E GI S T E R O R M E M O R Y ), A N D T H E
R E S U L T I S PL A C E D I N T H E A C C U M U L A T O R . I F T H E
OPERAND IS A MEMORY LOCATION, ITS
A D D R E S S I S S P E C I F I E D B Y T H E C O N T E N T S O F HL
R E GI S T E R S . S, Z, P A R E M O D I F I E D T O R E F L E C T
T H E R E S U L T O F T H E O P E R A T I O N . CY A N D AC
ARE RESET.

E X A M PL E : XRA B O R XRA M

XRI DATA IMMEDIATE THE CONTENTS OF THE ACCUMULATOR ARE


E X C L U S I V E OR E D W I T H T H E 8- B I T D A T A
( O P E R A N D ) A N D T H E R E S U L T I S PL A C E D I N T H E
A C C U M U L A T O R . S, Z, P A R E M O D I F I E D T O
Department of Electronics & Communication Engineering

R E F L E C T T H E R E S U L T O F T H E O PE R A T I O N . CY
A N D AC A R E R E S E T . E X A M PL E : XRI 86H
ORA R REGISTER THE CONTENTS OF THE ACCUMULATOR ARE
M INDIRECT L O G I C A L L Y OR E D W I T H T H E C O N T E N T S O F T H E
O P E R A N D ( R E GI S T E R O R M E M O R Y ), A N D T H E
R E S U L T I S PL A C E D I N T H E A C C U M U L A T O R . I F T H E
OPERAND IS A MEMORY LOCATION , ITS
A D D R E S S I S S P E C I F I E D B Y T H E C O N T E N T S O F HL
R E GI S T E R S . S, Z, P A R E M O D I F I E D T O R E F L E C T
T H E R E S U L T O F T H E O P E R A T I O N . CY A N D AC
ARE RESET.

E X A M PL E : ORA B O R ORA M

ORI DATA IMMEDIATE THE CONTENTS OF THE ACCUMULATOR ARE


L O G I C A L L Y OR E D W I T H T H E 8- B I T D A T A
( O P E R A N D ) A N D T H E R E S U L T I S PL A C E D I N T H E
A C C U M U L A T O R . S, Z, P A R E M O D I F I E D T O
R E F L E C T T H E R E S U L T O F T H E O PE R A T I O N . CY
A N D AC A R E R E S E T .

E X A M PL E : ORI 86H

RLC NONE - EACH BINARY BIT OF THE ACCUMULATOR IS


R O T A T E D L E F T B Y O N E P O S I T I O N . B I T D7 I S
PL A C E D I N T H E P O S I T I O N O F D0 A S W E L L A S I N
T H E C A R R Y F L A G . CY I S M O D I F I E D A C C O R D I N G
T O B I T D7. S, Z, P, AC A R E N O T A F F E C T E D .

E X A M PL E : RLC

RRC NONE - EACH BINARY BIT OF THE ACCUMULATOR IS


R O T A T E D R I G H T B Y O N E PO S I T I O N . B I T D0 I S
PL A C E D I N T H E P O S I T I O N O F D7 A S W E L L A S I N
T H E C A R R Y F L A G . CY I S M O D I F I E D A C C O R D I N G
T O B I T D0. S, Z, P, AC A R E N O T A F F E C T E D .

E X A M PL E : RRC

RAL NONE - EACH BINARY BIT OF THE ACCUMULATOR IS


R O T A T E D L E F T B Y O N E P O S I T I O N T H R O U GH T H E
C A R R Y F L A G . B I T D7 I S PL A C E D I N T H E C A R R Y
F L A G , A N D T H E C A R R Y F L A G I S PL A C E D I N T H E
L E A S T S I GN I F I C A N T P O S I T I O N D0. CY I S
M O D I F I E D A C C O R D I N G T O B I T D7. S, Z, P, AC
ARE NOT AFFECTED.

E X A M PL E : RAL
Department of Electronics & Communication Engineering

RAR NONE - EACH BINARY BIT OF THE ACCUMULATOR IS


R O T A T E D R I G H T B Y O N E PO S I T I O N T H R O U GH T H E
C A R R Y F L A G . B I T D0 I S PL A C E D I N T H E C A R R Y
F L A G , A N D T H E C A R R Y F L A G I S PL A C E D I N T H E
M O S T S I GN I F I C A N T PO S I T I O N D7. CY I S
MODIFIED ACCORDING TO BIT D0. S, Z, P, AC
ARE NOT AFFECTED.

E X A M PL E : RAR

CMA NONE - THE CONTENTS OF THE ACCUMULATOR ARE


C O M PL E M E N T E D . N O F L A GS A R E A F F E C T E D .

E X A M PL E : CMA

CMC NONE - T H E C A R R Y F L A G I S C O M PL E M E N T E D . N O
OTHER FLAGS ARE AFFECTED .

E X A M PL E : CMC

STC NONE - T H E C A R R Y F L A G I S S E T T O 1. N O O T H E R F L A G S
ARE AFFECTED.

E X A M PL E : STC

THIS SESSION MAINLY DEALS WITH BITWISE OPERATIONS. TO KNOW THE STATUS OF
PARTICULAR BIT IN PARTICULAR REGISTER WE CAN USE ANY OF THE BELOW TWO TECHNIQUES .
- BY ROTATE INSTRUCTIONS AND CHECKING THE STATUS OF CARRY FLAG .
IF YOU WANT TO CHECK THE STATUS OF 5TH BIT. YOU NEED TO ROTATE 6 TIMES AND
THEN CHECK T HE STATUS OF CARRY FLAG.
- M A S K I N G A N D T H E N C O M P A R I N G T H E N C H E C K T H E S T A T U S O F S, Z A N D P F L A G . I N
MASKING WE JUST CARE ABOUT THE BIT WE WANT .

MASKING MEANS REMOVING THE UNNECESSARY BITS .

FOR EXAMPLE: SUPPOSE YOU WANT TO KNOW THE NUMBER STORED IN REGISTER A IS
NEGATIVE OR POSITIVE.

ROTATE AND CHECK THE STATUS OF CARRY FLAG .


Department of Electronics & Communication Engineering

PROGRAMS

5.1 A N A R R A Y O F 10 B Y T E S I S S T O R E D F R O M M E M O R Y L O C A T I O N 2000 H W R I T E A N
A S S E M B L Y L E V E L P R O G R A M F O R 8085 T O C O U N T P O S I T I V E N U M B E R S A N D E V E N
N U M B E R S F R O M G I V E N A R R A Y A N D S T O R E C O U N T O F P O S I T I V E N U M B E R S O N 3000 H
A N D E V E N N U M B E R S O N 3001 H .

F L O W CH A R T :
Department of Electronics & Communication Engineering

CODE:

MVI B, 00 H ; C O U NT ER T O CO U NT P O S I T I V E NU M B ER
MVI C, 00 H ; C O U NT ER T O CO U NT E V E N NU M B ER
MVI D, 0A H ; C O U NT ER FO R AR R A Y
LXI H, 2000 H ; A R R AY P O I NT E R

XYZ: MOV A, M
RRC TO CH E CK W H ET H ER T H E N U M B E R I S E V EN O R O D D
JC ABC
INR C ; TO I NC R EM E NT E V E N CO U NT ER I F A BO VE C O ND . I S FAL S E

ABC: MOV A, M
RLC TO CH E CK W H ET H ER T H E N U M B E R I S +VE OR - VE
JC PQR
INR B ; TO I NC R EM E NT + VE CO U NT ER I S ABO V E C O ND . I S FAL S E

PQR: INR L ; T O I NC R EM E NT AR R A Y P O I NT ER
DCR D ; T O D EC R E M E NT A R R AY CO U NT ER
JNZ XYZ ; C O ND I T I O N T O BR E AK T H E L O O P
MOV A, B
STA 3000 H ; STORE T H E R ES U L T
MOV A, C
STA 3001 H ; STORE T H E R ES U L T

HLT

I NP U T A R R A Y : O U T P U T A R R AY :

2000 H : 01 H 3000 H : 08 H
2001 H : 02 H 3001 H : 05 H
2002 H : 03 H
2003 H : 04 H
2004 H : F5 H
2005 H : 06 H
2006 H : F7 H
2007 H : 08 H
2008 H : 09 H
2009 H : 0A H
Department of Electronics & Communication Engineering

5.2 AN AR R AY OF 10 2000 H WR I TE A N
B Y T ES IS S T OR ED F R O M ME MO R Y L OC AT IO N
AS SE MB L Y L E VEL PR O G R A M F O R8085 TO S E P AR AT E OU T P OS IT I VE NU M B E R S A N D
EV E N NU MB E R S F R O M GI V EN AR R A Y . M AK E NE W A R R AY S OF PO SI T IV E NU MB ER
ST AR T F R OM 3000 H A N D EV E N NU MB ER S S T A R T F R OM 4000 H .

F L O W CH A R T :
Department of Electronics & Communication Engineering

CODE:

LXI B, 3000 H ; C O U NT ER T O CO U NT P O S I T I V E NU M B ER
LXI D, 4000 H ; C O U NT ER T O CO U NT E V E N NU M B ER
LXI H, 2000 H ; A R R AY P O I NT ER

XYZ: MOV A, M
RRC ; TO C H E CK W H ET H E R T H E N U M B E R I S E V E N O R O D D
JC ABC
RLC ; T O G ET O R I G I N AL N U M B ER B A CK
STAX D ; T O ST O R E T H E N U M B ER I F ABO V E CO ND . I S F AL SE
INX D ; I N CR EM E NT E V EN NU M B ER P O I NT ER
ABC: MOV A, M
RLC ; TO C H E CK W H ET H E R T H E N U M B E R I S +VE OR -VE
JC PQR
RRC ; T O G ET O R I G I N AL N U M B ER B A CK
STAX B ; T O ST O R E T H E N U M B ER I F ABO V E CO ND . I S F AL SE
INX B ; I N CR EM E NT P O SI T I VE NU M B ER P O I NT ER
PQR: INR L ; I N CR EM E NT AR R AY P O I NT ER
MOV A, L
CPI 0A H
JNZ LOOP ; C O ND I T I O N TO BREAK THE LOOP

HLT

I NP U T A R R A Y : O U T P U T A R R AY :

2000 H : F1 H 3000 H : 02 H 4000 H : 02 H


2001 H : 02 H 3001 H : 04 H 4001 H : 04 H
2002 H : F3 H 3002 H : 06 H 4002 H : 06 H
2003 H : 04 H 3003 H : 08 H 4003 H : 08 H
2004 H : F5 H 3004 H : 09 H 4004 H : 0A H
2005 H : 06 H 3005 H : 0A H
2006 H : F7 H
2007 H : 08 H
2008 H : 09 H
2009 H : 0A H
Department of Electronics & Communication Engineering

5.3 A S ET R E AD I N G I S S TO R E D IN M E MO R Y L OC A TI O N ST A R T IN G F R O M 2000 H . T H E
R E AD I N GS AR E C OD ES F OR C ER T AI N G O O DS . C OD E 00 H I N DIC A TE EN D O F
R E AD I N G . C OU N T 45 H C OD E F R OM GI VE N AR R A Y A N D ST OR E C O U NT O N 3000 H .
(H I N T : W H I L E L OO P )

F L O W CH A R T :
Department of Electronics & Communication Engineering

CODE:

MVI C, 00 H ; I NI T I AL I Z E CO U NT ER
LXI H, 2000 H ; A R R AY P O I NT ER
MVI B, 45 H ; N O . W H I CH W E W A N T T O SE A R C H
MVI D, 00 H ; N O . W H I CH I S U SE D T O B R E AK T H E LOOP

PQR: MOV A, M
CMP B ; TO C H E CK W H ET H E R T H E N U M B E R I S 45 H O R NO T
JNZ ABC
INR C ; I N CR EM E NT T H E CO U NT I F CO ND I T I O N I S F A L SE

ABC: INX H ; I N CR EM E NT AR R AY P O I NT ER
CMP D
JNZ PQR ; C O ND I T I O N TO BREAK THE LOOP
MOV A, C
STA 3000 H ; STORE T H E CO U NT

HLT

I NP U T A R R A Y : O U T P U T A R R AY :

2000 H : F1 H 3000 H : 02 H
2001 H : 02 H
2002 H : F3 H
2003 H : 45 H
2004 H : F5 H
2005 H : 06 H
2006 H : 45 H
2007 H : 00 H
Department of Electronics & Communication Engineering

5.4 AN AR R AY OF 10 B Y T ES IS S T OR ED F R O M ME MO R Y L OC AT IO N 2000 H WR I TE A N
AS SE MB L Y L E VEL PR O G R A M F O R 8085 TO SORT A GI VE N AR R A Y I N A SC E N D IN G
OR DE R .

F L O W CH A R T :
Department of Electronics & Communication Engineering

CODE:

MVI C, 09 H ; I NI T I AL I Z E T H E A R R AY CO U NT ER

LOOP2: LXI H, 2000 H ; I NI T I AL I Z E T H E A R R A Y P O I NT ER


MOV B, C ; C O P Y T H E AR R AY C O U NT ER

LOOP1: MOV A, M ; C O L L ECT T H E D AT A


MOV D, A ; C O P Y T H E D AT A I N N EW R EG I ST ER
INR L ; I N CR EM E NT AR R AY P O I NT ER
MOV A, M ; C O L L ECT T H E N EXT D AT A
CMP D ; C O M P A R E O L D D AT A A ND N EW D AT A
JNC ABC ; C O ND I T I O N FO R S W AP I N G NO . O R NO T

MOV E, A
MOV A, D
MOV M, A
DCR L ; CODE U S ED T O SW A P T H E D AT A O F L A ST T W O
AD D R E SS L O C AT I O N S
MOV A, E
MOV M, A
INR L

ABC: DCR B ; D E CR EM ENT I N N ER A R R AY CO U NT ER


JNZ LOOP1 ; C O ND I T I O N T O CO M E O U T O F I N N ER LOOP

DCR C ; D E CR EM ENT O U T ER AR R AY CO U NT ER
JNZ LOOP2 ; C O ND I T I O N T O CO M E O U T O F O U T ER L O O P

HLT
I NP U T A R R A Y : O U T P U T A R R AY :

2000 H : F1 H 3000 H : 02 H
2001 H : 02 H 3001 H : 04 H
2002 H : F3 H 3002 H : 06 H
2003 H : 04 H 3003 H : 08 H
2004 H : F5 H 3004 H : 09 H
2005 H : 06 H 3005 H : 0A H
2006 H : F7 H 3006 H : F1 H
2007 H : 08 H 3007 H : F3 H
2008 H : 09 H 3008 H : F5 H
2009 H : 0A H 3009 H : F7 H

You might also like