ALP-2

Views:
 
Category: Entertainment
     
 

Presentation Description

micro unit 1

Comments

Presentation Transcript

Chapter 2 8051 Assembly Language Programming:

2002/2/27 Microcomputers and Microprocessors Chapter 2 8051 Assembly Language Programming

Outlines:

Outlines 8051 registers Manipulate data using registers & MOVE instructions Code simple assembly language instructions Assemble and run a program Sequence events upon power-up Examine programs in ROM codes ROM memory map Execution of instructions Data types PSW register RAM memory space Stack Register banks

8051 Registers:

8051 Registers D7 D6 D5 D4 D3 D2 D1 D0 DPTR PC PC (Program counter) DPH DPL Figure2-1 (a): Some 8 bit Registers of the 8051 Figure2-1 (b): Some 8051 16 bit Registers 8 bit Registers R6 R5 R4 R3 R2 R1 R0 B A R7

MOV Instruction:

MOV Instruction MOV destination, source ; copy source to dest. MOV A,#55H ;load value 55H into reg. A MOV R0,A ;copy contents of A into R0 ;(now A=R0=55H) MOV R1,A ;copy contents of A into R1 ;(now A=R0=R1=55H) MOV R2,A ;copy contents of A into R2 ;(now A=R0=R1=R2=55H) MOV R3,#95H ;load value 95H into R3 ;(now R3=95H) MOV A,R3 ;copy contents of R3 into A ;now A=R3=95H

Notes on Programming:

Notes on Programming Value (proceeded with #) can be loaded directly to registers A, B, or R0 – R7 MOV R5, #0F9H If values 0 to F moved into an 8-bit register, the rest assumed all zeros MOV A, #5 A too large value causes an error MOV A, #7F2H

ADD Instruction:

ADD Instruction ADD A, source ;ADD the source operand ;to the accumulator MOV A, #25H ;load 25H into A MOV R2,#34H ;load 34H into R2 ADD A,R2 ;add R2 to accumulator ;(A = A + R2)

Structure of Assembly Language:

Structure of Assembly Language ORG 0H ;start (origin) at location 0 MOV R5,#25H ;load 25H into R5 MOV R7,#34H ;load 34H into R7 MOV A,#0 ;load 0 into A ADD A,R5 ;add contents of R5 to A ;now A = A + R5 ADD A,R7 ;add contents of R7 to A ;now A = A + R7 ADD A,#12H ;add to A value 12H ;now A = A + 12H HERE: SJMP HERE ;stay in this loop END ;end of asm source file Program 2-1:Sample of an Assembly Language Program

Steps to Create a Program:

Steps to Create a Program

8051 Program Counter & ROM Space:

8051 Program Counter & ROM Space

8051 Program Counter & ROM Space:

8051 Program Counter & ROM Space

8051 Program Counter & ROM Space:

8051 Program Counter & ROM Space

Execute a Program Byte by Byte:

Execute a Program Byte by Byte PC=0000: opcode 7D fetched; 25 fetched; R5←25; PC+2 PC=0002: opcode 7F fetched; 34 fetched; R7←34; PC+2 PC=0004; opcode 74 fetched; 0 fetched; A←0; PC+2 PC=0006; opcode 2D fetched; A←A+R5; PC+1 (Similarly…)

8051 On-Chip ROM Address Range:

8051 On-Chip ROM Address Range

Data Types & Directives:

Data Types & Directives ORG 500H DATA1: DB 28 ;DECIMAL (1C in Hex) DATA2: DB 00110101B ;BINARY (35 in Hex) DATA3: DB 39H ; HEX ORG 510H DATA4: DB “2591” ; ASCII NUMBERS ORG 518H DATA6: DB “My name is Joe” ;ASCII CHARACTERS

PSW (Flag) Register:

PSW (Flag) Register

Instructions Affecting Flag Bits:

Instructions Affecting Flag Bits

ADD Instruction and PSW:

ADD Instruction and PSW

ADD Instruction and PSW:

ADD Instruction and PSW

ADD Instruction and PSW:

ADD Instruction and PSW

8051 RAM Allocation:

8051 RAM Allocation

8051 Register Banks:

8051 Register Banks

Access RAM Locations Using Register Names:

Access RAM Locations Using Register Names

Access RAM Locations Using Addresses:

Access RAM Locations Using Addresses

Switch Register Banks:

Switch Register Banks

Switch Register Banks:

Switch Register Banks

Pushing onto Stack:

Pushing onto Stack

Popping from Stack:

Popping from Stack

Stack & Bank 1 Conflict:

Stack & Bank 1 Conflict

Stack & Bank 1 Conflict:

Stack & Bank 1 Conflict

authorStream Live Help