You are on page 1of 13

8051 Addressing modes

• Immediate Addressing Mode


• MOV A, #6AH
• This addressing mode is named
as “immediate” because it transfers an 8-bit
data immediately to the accumulator
(destination operand).
Immediate Addressing Mode
Direct Addressing Mode
• MOV A, 04H
• Here 04H is the address of register 4 of
register bank#0. When this instruction is
executed, what ever data is stored in register
04H is moved to accumulator. In the picture
below we can see, register 04H holds the data
1FH. So the data 1FH is moved to accumulator.
Direct Addressing Mode
Switching between banks

• MOV A, R4
Register Addressing Mode
MOV A, R4
Register Indirect Addressing Mode
MOV A, @R0
Indexed Addressing Mode
MOVC A, @A+DPTR
Example
Address(RAM) data
• MOV R0,#25H 7F 58H
• MOV 25H,#04H 4FH 04
25H 04
• MOV A,#54H
• ADD A, @R0
00 (R0 REG) 25H
• MOV 7FH, A
• MOV 4FH,25H After execution of add instruction
Address(RAM) data

E0 (A REGISTER) 58H
Example
• MOV A,#54H; OR MOV E0H,#54H
• MOV DPTR,#300H
• MOVC A,@A+DPTR; AFTER A=F5

Register(RAM) Data ADDRESS(ROM) DATA


A F5 354 F5
Example
• MOV A,#02H ADDRESS(RAM) DATA
• MOV R1,#65H 65H 02
: :
• MOV 65H,#02H 01H(R1 REG) 65H
• ADD A,@R1
After execution of add instruction
ADDRESS DATA
E0 04H
(A REG)
Example
• ADD A,65H; Direct addressing mode
• ADD A,#65H;Immediate addressing mode
• ADD A,@R1; register indirect addressing mode
• ADD A, R1;register addressing mode
• SUBB A,R7; register addressing mode
• SUBB A,@R7; INVALID instruction; only R0 and R1
Register should be used for indirect addressing
• MUL A,B; INVALID instruction
• MUL R0R1; INVALID instruction
• MOV #45H,54H; INVALID instruction
Thank you

You might also like