Download presentation
Presentation is loading. Please wait.
Published byTyshawn Bumford Modified over 9 years ago
1
Suranaree University Of Technology มทส 2002 Anant Oonsivilai 2002/2/27 Microcomputers and Microprocessors Chapter 2 8051 Assembly Language Programming
2
2002 Anant Oonsivilai 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 (Program Status Word) RAM memory space Stack Register banks
3
2002 Anant Oonsivilai 8051 Registers D7D6D5D4D3D2D1D0 DPTR PC PC (Program counter) DPHDPL 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
4
2002 Anant Oonsivilai 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
5
2002 Anant Oonsivilai Notes on Programming Value (proceeded with #) can be loaded directly to registers A, B, or R0 – R7 MOV R5, #0F9H MOV R5, #0F9H If values 0 to F moved into an 8-bit register, the rest assumed all zeros MOV A, #5 MOV A, #5 A too large value causes an error MOV A, #7F2H MOV A, #7F2H
6
2002 Anant Oonsivilai ADD Instruction ADD A, source ;ADD the source operand ;to the accumulator ;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)
7
2002 Anant Oonsivilai 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
8
2002 Anant Oonsivilai Steps to Create a Program
9
2002 Anant Oonsivilai 8051 Program Counter & ROM Space
10
2002 Anant Oonsivilai 8051 Program Counter & ROM Space
11
2002 Anant Oonsivilai 8051 Program Counter & ROM Space
12
2002 Anant Oonsivilai Execute a Program Byte by Byte 1.PC=0000: opcode 7D fetched; 25 fetched; R5←25; PC+2 2.PC=0002: opcode 7F fetched; 34 fetched; R7←34; PC+2 3.PC=0004; opcode 74 fetched; 0 fetched; A←0; PC+2 4.PC=0006; opcode 2D fetched; A←A+R5; PC+1 5.(Similarly…)
13
2002 Anant Oonsivilai 8051 On-Chip ROM Address Range
14
2002 Anant Oonsivilai Data Types & Directives ORG 500H ORG 500H DATA1: DB 28 ;DECIMAL (1C in Hex) DATA2: DB 00110101B ;BINARY (35 in Hex) DATA3: DB 39H ; HEX ORG 510H ORG 510H DATA4: DB “2591” ; ASCII NUMBERS ORG 518H ORG 518H DATA6: DB “My name is Joe” ;ASCII CHARACTERS
15
2002 Anant Oonsivilai PSW (Flag) Register
16
2002 Anant Oonsivilai Instructions Affecting Flag Bits
17
2002 Anant Oonsivilai ADD Instruction and PSW
18
2002 Anant Oonsivilai ADD Instruction and PSW
19
2002 Anant Oonsivilai ADD Instruction and PSW
20
2002 Anant Oonsivilai 8051 RAM Allocation
21
2002 Anant Oonsivilai 8051 Register Banks
22
2002 Anant Oonsivilai Access RAM Locations Using Register Names
23
2002 Anant Oonsivilai Access RAM Locations Using Addresses
24
2002 Anant Oonsivilai Switch Register Banks
25
2002 Anant Oonsivilai Switch Register Banks
26
2002 Anant Oonsivilai Pushing onto Stack
27
2002 Anant Oonsivilai Popping from Stack
28
2002 Anant Oonsivilai Stack & Bank 1 Conflict
29
2002 Anant Oonsivilai Stack & Bank 1 Conflict
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.