0% found this document useful (0 votes)
59 views37 pages

Addressing Modes 8051

The document discusses the addressing modes and instruction set of the 8051 microcontroller. It describes the 5 addressing modes of 8051 as immediate, register, direct, register indirect, and indexed. It then explains each addressing mode in 1-2 sentences. Finally, it categorizes the instruction set of 8051 into arithmetic, logical, data transfer, and branching/looping instructions and provides 1-2 examples of instructions from each category.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views37 pages

Addressing Modes 8051

The document discusses the addressing modes and instruction set of the 8051 microcontroller. It describes the 5 addressing modes of 8051 as immediate, register, direct, register indirect, and indexed. It then explains each addressing mode in 1-2 sentences. Finally, it categorizes the instruction set of 8051 into arithmetic, logical, data transfer, and branching/looping instructions and provides 1-2 examples of instructions from each category.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 37

ADDRESSING MODES &

INSTRUCTIONS SET OF
8051 MICRO CONTROLLER
Addressing modes
 Definition:-
The different ways in which a
source operand in an instruction are known
as the addressing modes.
The 8051 provides a total of 5
distinct addressing modes.
Types of Addressing modes

Addressing modes

Immediate Register Direct Register indirect Indexed


Addressing mode Addressing mode Addressing mode Addressing mode Addressing mode
Immediate addressing mode
In this addressing mode the
source operand is constant. In immediate
addressing mode, when the instruction is
assembled, the operand comes
immediately after the op-code.
Continue…

 The immediate data must be


preceded by ‘#’ sign.

 This addressing mode can be used to


load information into any of the
register, including the DPTR.
Continue…
 Ex :-

MOV A,#25H // load 25H in to A


MOV R4,#62 // load the
decimal value 62 into R4.
MOV DPTR,#4532H // DPTR=4532H.
Register addressing mode
Register addressing mode
involves the use of registers to hold
the data to be manipulated.
Continue…
 Ex :-
MOV A,R0 // copy the contents of R0 in to A.
MOV R2,A // copy the contents of A in to
R2.
ADD A,R5 // add the content of R5 to content
of A.
Direct addressing mode
In direct addressing mode, the
data is in a RAM memory location whose
address is known, and this address is given
as a part of the instruction. Contrast this
with the immediate addressing mode in
which the operand itself is provided with the
instruction.
Direct addressing mode
 In this mode the operand is specified by an 8-
bit address field In the instruction.

 One can access all the 128 bytes of internal


RAM locations and each SFR.

 If the MSB bit = 0 then the location is within on


chip internal RAM. If MSB bit = 1 then the
location is SFR.

12
Direct addressing mode
 The location 00h to 7Fh to address the
internal RAM .
 SFR addresses from 80h to FF h

 e.g. MOV A,40h


MOV R0,14h

13
Continue…
 Ex:-
MOV R0,40H // save content of RAM
location 40h into R0.
MOV 56H,A // save content of A in
RAM location 56H.
Register indirect addressing mode

 In the register indirect addressing mode,


a register is used as a pointer to the data.
 If the data is inside the CPU, only register
R0 and R1 are used for this purpose.
 In other words,R2-R7 cannot be used to
hold the address of an operand located in
RAM when using this addressing mode.
Continue…
When R0 and R1 are used as pointers ,
that is, when they hold the address of
RAM locations , they must be preceded
by the “@” sign.
Note : only register R0 and R1 can be used
for indirect addressing mode .
MOV A,@R2 invalid instruction.
Continue…
Ex :-
MOV A,@R0 // move contents of RAM
location whose address
is held by R0 into A.
MOV @R1,B // move contents of B to
RAM location whose
address is held by R1
External addressing mode
or Indexed addressing mode
(a) Code access (ROM access)
 Using these instructions only program memory
can be accessed.

 This addressing mode is preferred for reading look


up tables in the program memory.

 Either DPTR or PC can be used as pointer.

21
External addressing mode
or Indexed addressing mode
 E.g.
MOVC A,@A+DPTR

MOVC A,@A+PC

23
External addressing mode
or Indexed addressing mode
(b) Data access (RAM access)

 Using this addressing mode the programmer


can access the external Data memory

 E.g. MOVX A,@DPTR


MOVX @R0,A

Prof. Nitin Ahire 24


Continue…
 In this instruction the content of A are
added to the 16-bit register DPTR to form
the 16-bit address of the needed data.
Instruction set of 8051
8051 has simple instruction set in
different groups. There are:
 Arithmetic instructions
 Logical instructions
 Data transfer instructions
 Branching and looping instructions
 Bit control instructions
Arithmetic instructions
These instructions are used to
perform various mathematical operations
like addition, subtraction, multiplication, and
division etc.
Continue…
 ADD A, R1 // Add the content of
register1 to Accumulator
 ADDC A,#2 // Add 2 to accumulator with
carry
 SUBB A,R2 // Subtract content of register2
from Accumulator
Continue…
 INC A // Increment accumulator
 DEC A // Decrement accumulator

 MUL AB // Multiply A and B


 DIV AB // Divide A by B
Logical instructions
 The logical instructions are the instructions
which are used for performing some
operations like AND, OR, NOT, X-OR and
etc., on the operands.
Continue…
 ANL A, Rn // AND register to accumulator
 ORL A, Rn // OR register to accumulator
 XRL A, Rn // Exclusive OR Reg to Acc
 CLR A // Clear Accumulator
 CPL A // Complement Accumulator
Data Transfer Instructions
 These instruction are used to transfer the
data from source operand to destination
operand. All the store, move, load,
exchange input and output instructions
belong to this to this group.
Continue…
 MOV A, Rn // Move Reg to Acc
 MOVX A,@DPTR // Move external RAM
to Accumulator
 PUSH direct // PUSH direct byte on
to stack
 POP direct // POP direct byte from
stack
Branch and Looping Instructions
 These instructions are used for both
branching as well as looping.
 These instructions include conditional &
unconditional jump or loop instructions.
Conditional Jump Instructions
 JC // Jump if carry equal to one
 JNC // Jump if carry equal to zero
 JB // Jump if bit equal to one
 JNB // Jump if bit equal to zero
 JBC // Jump if bit equal to one and clear
bit
Continue…
 JZ // Jump if A=Zero
 JNZ // Jump if A not equal to zero
 DJNZ // Decrement and Jump if not
equal to zero.
Unconditional Jump Instructions
 In 8051 there two unconditional jumps.
They are:
 SJMP // Short jump
 LJMP // Long jump

You might also like