Suranaree University Of Technology มทส 2002 Anant Oonsivilai 2002/4/8 Microcomputers and...

Preview:

Citation preview

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

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

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

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

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”

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

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

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

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

10102002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

SFR Addresses ( 1 of 2 )SFR Addresses ( 1 of 2 )

11112002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

SFR Addresses ( 2 of 2 )SFR Addresses ( 2 of 2 )

12122002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

ExampleExample

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

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

15152002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

Example ( 1 of 2 )Example ( 1 of 2 )

16162002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

Example ( 2 of 2 )Example ( 2 of 2 )

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

18182002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

ExampleExample

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

20202002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

Example ( 1 of 2 )Example ( 1 of 2 )

21212002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

Example ( 2 of 2 )Example ( 2 of 2 )

22222002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

Example ( 1 of 3 )Example ( 1 of 3 )

23232002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

Example ( 2 of 3 )Example ( 2 of 3 )

24242002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

Example ( 3 of 3 )Example ( 3 of 3 )

25252002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

Look-up Table & Indexed Look-up Table & Indexed AddressingAddressing

26262002/4/82002/4/8 Microcomputers and MicroprocessorsMicrocomputers and Microprocessors2002 Anant Oonsivilai2002 Anant Oonsivilai

ExampleExample

Recommended