Page 1
2002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors 11
Suranaree UniversitySuranaree University
Of TechnologyOf Technologyมทสมทส
2002 Anant Oonsivilai2002 Anant Oonsivilai
Chapter 5Chapter 5Addressing ModesAddressing Modes
Page 2
222002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
OutlinesOutlines
Five addressing modes of 8051Five addressing modes of 8051
Code instructions using each addressing Code instructions using each addressing modemode
Access RAM using various addressing modesAccess RAM using various addressing modes
SFR addresses (Special Function Register) SFR addresses (Special Function Register)
Access SFRAccess SFR
Operate stack using direct addressing modeOperate stack using direct addressing mode
Code instructions to operate look-up tableCode instructions to operate look-up table
Page 3
332002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Five Addressing ModesFive Addressing Modes
ImmediateImmediate
RegisterRegister
DirectDirect
Register indirectRegister indirect
IndexedIndexed
Page 4
442002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Immediate Addressing ModeImmediate Addressing Mode
MOVMOV A,#25HA,#25H ;load 25H into A;load 25H into A
MOV MOV R4,#62R4,#62 ;load the decimal value 62 into R4;load the decimal value 62 into R4
MOV B,#40HMOV B,#40H ;load 40H into B;load 40H into B
MOVMOV DPTR,#4521HDPTR,#4521H ;DPTR=4521H;DPTR=4521H
MOVMOV DPTR,#2550HDPTR,#2550H
;is the same as:;is the same as:
MOVMOV DPL,#50HDPL,#50H
MOVMOV DPH,#25HDPH,#25H
Page 5
552002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
MOVMOV DPTR,#68975DPTR,#68975 ;illegal!! value > 65535 (FFFFH);illegal!! value > 65535 (FFFFH)
COUNTCOUNT EQU 30 EQU 30
…… … …
MOV MOV R4,#COUNT R4,#COUNT ;R4=1E (30=1EH) ;R4=1E (30=1EH)
MOV DPTR,#MYDATAMOV DPTR,#MYDATA ;DPTR=200H;DPTR=200H
ORGORG 200H 200H
MYDATA:MYDATA: DB “America” DB “America”
Page 6
662002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Register Addressing ModeRegister Addressing Mode
MOVMOV A,R0A,R0 ;copy the contents of R0 into A;copy the contents of R0 into A
MOVMOV R2,AR2,A ;copy the contents of A into R2;copy the contents of A into R2
ADDADD A,R5A,R5 ;add the contents of R5 to contents of A;add the contents of R5 to contents of A
ADDADD A,R7A,R7 ;add the contents of R7 to contents of A;add the contents of R7 to contents of A
MOVMOV R6,AR6,A ;save accumulator in R6;save accumulator in R6
MOVMOV DPTR,#25F5HDPTR,#25F5H
MOVMOV R7,DPLR7,DPL
MOVMOV R6,DPHR6,DPH
Page 7
772002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Direct Addressing ModeDirect Addressing Mode
RAM addresses 00 to 7FHRAM addresses 00 to 7FHMOVMOV R0,40HR0,40H ;save content of RAM location 40H in R0;save content of RAM location 40H in R0
MOVMOV 56H,A56H,A ;save content of A in RAM location 56H;save content of A in RAM location 56H
MOVMOV R4,7FHR4,7FH ;move contents of RAM location 7FH to R4;move contents of RAM location 7FH to R4
MOVMOV A,4A,4 ;is same as;is same as
MOV A,R4MOV A,R4 ;which means copy R4 into A;which means copy R4 into A
MOVMOV A,7A,7 ;is same as;is same as
MOVMOV A,R7A,R7 ;which means copy R7 into A;which means copy R7 into A
Page 8
882002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
MOVMOV A,2A,2 ;is the same as;is the same as
MOVMOV A,R2A,R2 ;which means copy R2 into A;which means copy R2 into A
MOVMOV A,0A,0 ;is the same as;is the same as
MOVMOV A,R0A,R0 ;which means copy R0 into A;which means copy R0 into A
MOVMOV R2,#5R2,#5 ;R2=05;R2=05
MOVMOV A,2A,2 ;copy R2 to A (A=R2=05);copy R2 to A (A=R2=05)
MOVMOV B,2B,2 ;copy R2 to B (B=R2=05);copy R2 to B (B=R2=05)
MOVMOV 7,27,2 ;copy R2 to R7;copy R2 to R7
;since “MOV R7,R2” is invalid;since “MOV R7,R2” is invalid
Page 9
992002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
SFR Registers & Their SFR Registers & Their AddressesAddresses
MOVMOV 0E0H,#55H0E0H,#55H ;is the same as;is the same as
MOVMOV A,#55HA,#55H ;which means load 55H into A (A=55H);which means load 55H into A (A=55H)
MOVMOV 0F0H,#25H0F0H,#25H ;is the same as;is the same as
MOV B,#25HMOV B,#25H ;which means load 25H into B (B=25H);which means load 25H into B (B=25H)
MOVMOV 0E0H,R20E0H,R2 ;is the same as;is the same as
MOVMOV A,R2A,R2 ;which means copy R2 into A;which means copy R2 into A
MOVMOV 0F0H,R00F0H,R0 ;is the same as;is the same as
MOVMOV B,R0B,R0 ;which means copy R0 into B;which means copy R0 into B
Page 10
10102002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
SFR Addresses ( 1 of 2 )SFR Addresses ( 1 of 2 )
Page 11
11112002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
SFR Addresses ( 2 of 2 )SFR Addresses ( 2 of 2 )
Page 12
12122002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
ExampleExample
Page 13
13132002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Stack and Direct Addressing ModeStack and Direct Addressing Mode
Only direct addressing is allowed for stackOnly direct addressing is allowed for stack
Page 14
14142002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Register Indirect Addressing ModeRegister Indirect Addressing Mode
Only R0 & R1 can be usedOnly R0 & R1 can be used
MOVMOV A,@R0A,@R0 ;move contents of RAM location whose;move contents of RAM location whose
;address is held by R0 into A;address is held by R0 into A
MOVMOV @R1,B@R1,B ;move contents of B into RAM location;move contents of B into RAM location
;whose address is held by R1;whose address is held by R1
Page 15
15152002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Example ( 1 of 2 )Example ( 1 of 2 )
Page 16
16162002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Example ( 2 of 2 )Example ( 2 of 2 )
Page 17
17172002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Advantage of Register Indirect Advantage of Register Indirect AddressingAddressing
Looping not possible in direct addressingLooping not possible in direct addressing
Page 18
18182002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
ExampleExample
Page 19
19192002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Index Addressing Mode & On-chip ROM Index Addressing Mode & On-chip ROM AccessAccess
Limitation of register indirect addressing: Limitation of register indirect addressing: 8-bit addresses (internal RAM)8-bit addresses (internal RAM)
DPTR: 16 bitsDPTR: 16 bits
MOVCMOVC A, @A+DPTRA, @A+DPTR ; “C” means ; “C” means program (code) space ROMprogram (code) space ROM
Page 20
20202002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Example ( 1 of 2 )Example ( 1 of 2 )
Page 21
21212002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Example ( 2 of 2 )Example ( 2 of 2 )
Page 22
22222002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Example ( 1 of 3 )Example ( 1 of 3 )
Page 23
23232002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Example ( 2 of 3 )Example ( 2 of 3 )
Page 24
24242002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Example ( 3 of 3 )Example ( 3 of 3 )
Page 25
25252002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
Look-up Table & Indexed Look-up Table & Indexed AddressingAddressing
Page 26
26262002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai
ExampleExample