SlideShare a Scribd company logo
1 of 20
Assembly LanguageAssembly Language
Programming of 8051Programming of 8051
Assembly LanguageAssembly Language
• Provides ‘English like’ words called ‘mnemonics’Provides ‘English like’ words called ‘mnemonics’
for the machine codes.for the machine codes.
• For e.g.For e.g.
– 0010 11110010 1111 (2FH), is a 8-bit instruction in(2FH), is a 8-bit instruction in MachineMachine
languagelanguage of 8051 to add two numbersof 8051 to add two numbers
– ADD A, R7ADD A, R7 is anis an Assembly languageAssembly language instructioninstruction
of 8051 to add two numbersof 8051 to add two numbers
High-level LanguagesHigh-level Languages
• These languages areThese languages are machine-independentmachine-independent
• Programmer may not know the internal detailsProgrammer may not know the internal details
of the CPUof the CPU
• For e.g.For e.g. Embedded CEmbedded C, Embedded Java etc., Embedded Java etc.
• High-level language programs are translated toHigh-level language programs are translated to
machine code using a program called ‘machine code using a program called ‘CompilerCompiler’’
Programming using ‘Assembly’Programming using ‘Assembly’
• A program called ‘A program called ‘AssemblerAssembler’ is needed to’ is needed to
translate an Assembly Language program totranslate an Assembly Language program to
machine languagemachine language
• Assembly language is ‘Assembly language is ‘machine dependentmachine dependent’,’,
i.e. ai.e. a low-levellow-level programming languageprogramming language
• A programmer must know theA programmer must know the
– Internal details of CPUInternal details of CPU
– Instruction setInstruction set
• 8-bit Registers of 80518-bit Registers of 8051
• TheseThese CPU RegistersCPU Registers are used toare used to
store data temporarilystore data temporarily
• TheThe Accumulator, register AAccumulator, register A, is, is
used for all Arithmetic & Logicused for all Arithmetic & Logic
operations.operations.
• Registers R0 – R7 are for generalRegisters R0 – R7 are for general
useuse
Programming Model of 8051Programming Model of 8051
AA
BB
R0R0
R1R1
R2R2
R3R3
R4R4
R5R5
R6R6
R7R7
Assembly Language programAssembly Language program
• Consists of a series of Assembly languageConsists of a series of Assembly language
instructionsinstructions
• Structure of Assembly LanguageStructure of Assembly Language
– Has four fieldsHas four fields
[label:][label:] mnemonicmnemonic [operands][operands] [;comments][;comments]
start:start: MOVMOV R5, #25HR5, #25H ;load 25H in R5;load 25H in R5
MOVMOV A, #5A, #5 ;load 5 in A;load 5 in A
ADDADD A, R5A, R5 ;add A & R5;add A & R5
80518051 FlagsFlags andand PSWPSW RegisterRegister
• The flag register in 8051 is calledThe flag register in 8051 is called Program StatusProgram Status
WordWord (PSW)register(PSW)register
• PSW is a 8-bit registerPSW is a 8-bit register
• 8051 has 4 conditional flags – CY(Carry),8051 has 4 conditional flags – CY(Carry),
AC(Auxiliary Carry), OV(Overflow), P(Parity)AC(Auxiliary Carry), OV(Overflow), P(Parity)
CYCY ACAC F0F0 RS1RS1 RS0RS0 OVOV ---- PP
D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0
8051 Flags8051 Flags
• CY(Carry Flag)CY(Carry Flag) is SETis SET
– if aif a carrycarry is generated afteris generated after additionaddition
– if aif a borrowborrow is generated afteris generated after subtractionsubtraction
• Can be SET/CLEARED by usingCan be SET/CLEARED by using
instructions such asinstructions such as
SETB C, CLR CSETB C, CLR C
• AC(Auxiliary Carry Flag) is SETAC(Auxiliary Carry Flag) is SET
– If there is a carry from bit D3 to D4If there is a carry from bit D3 to D4
– Used for BCD arithmeticUsed for BCD arithmetic
8051 Flags8051 Flags
• P(Parity Flag)P(Parity Flag) reflects no. of 1’s in register Areflects no. of 1’s in register A
– SET if ODD no. of 1’sSET if ODD no. of 1’s
– RESET if EVEN no. of 1’sRESET if EVEN no. of 1’s
• OV(Overflow Flag)OV(Overflow Flag)
– Used with signed numbersUsed with signed numbers
– Detects the overflow of the higher-order bit toDetects the overflow of the higher-order bit to
the sign bitthe sign bit
8051 Register Banks8051 Register Banks
• 8051 has 4 register banks8051 has 4 register banks
• Each bank has 8 registers named R0 to R7Each bank has 8 registers named R0 to R7
• Only one register bank can be accessed byOnly one register bank can be accessed by
8051 at a time8051 at a time
• BitsBits RS0RS0 && RS1RS1 ofof PSWPSW register are used toregister are used to
select any one of the four register banksselect any one of the four register banks
Register Bank Selection bitsRegister Bank Selection bits
CYCY ACAC F0F0 RS1RS1 RS0RS0 OVOV ---- PP
D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0
RegisterRegister
BankBank
RS0RS0 RS1RS1 AddressAddress
00 00 00 00 – 07H00 – 07H
11 00 11 08 – 0FH08 – 0FH
22 11 00 10H – 17H10H – 17H
33 11 11 18H – 1FH18H – 1FH
RAM space allocation in 8051RAM space allocation in 8051
• 8051 has8051 has 128 bytes128 bytes of RAMof RAM
• RAM address space isRAM address space is 00H00H toto 7FH7FH
• 8051 RAM is divided into 3 groups8051 RAM is divided into 3 groups
– Register banks and StackRegister banks and Stack
– Bit-addressable memoryBit-addressable memory
– Scratch Pad memoryScratch Pad memory
00
07
08
0F
10
17
18
1F
20
2F
30
7F
Register Bank 0
Register Bank 1 (Stack)
Register Bank 2
Register Bank 3
Bit Addressable RAM
Scratch Pad RAM
RA
Default Register BankDefault Register Bank
77
66
55
44
33
22
11
00
R7R7
R6R6
R5R5
R4R4
R3R3
R2R2
R1R1
R0R0
R7R7
R6R6
R5R5
R4R4
R3R3
R2R2
R1R1
R0R0
R7R7
R6R6
R5R5
R4R4
R3R3
R2R2
R1R1
R0R0
1F1F
1E1E
1D1D
1C1C
1B1B
1A1A
1919
1818
1717
1616
1515
1414
1313
1212
1111
1010
FF
EE
DD
CC
BB
AA
99
88
R7R7
R6R6
R5R5
R4R4
R3R3
R2R2
R1R1
R0R0
Bank 0 Bank 1 Bank 2 Bank 3
Using RAM addressesUsing RAM addresses
MOV R2, #3FHMOV R2, #3FH MOV 02, #3FHMOV 02, #3FH
MOV R1, #85HMOV R1, #85H MOV 01, #85HMOV 01, #85H
MOV R0, #99HMOV R0, #99H MOV 00, #99HMOV 00, #99H
77
66
55
44
33
22
11
00
R7R7
R6R6
R5R5
R4R4
R3R3
R2R2
R1R1
R0R0
Bank 0
Q. Which register bank is used by
default, when 8051 is powered up?
Ans. Register Bank 0
How to switch Register banks?How to switch Register banks?
CYCY ACAC F0F0 RS1RS1 RS0RS0 OVOV ---- PP
D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0
Register BankRegister Bank RS0RS0 RS1RS1 AddressAddress
00 00 00 00 – 07H00 – 07H
11 00 11 08 – 0FH08 – 0FH
22 11 00 10H – 17H10H – 17H
33 11 11 18H – 1FH18H – 1FH
Program Status Word Register
SETB PSW.4SETB PSW.4 ; select bank 2; select bank 2
MOV R0, #99HMOV R0, #99H
MOV R1, #85HMOV R1, #85H
MOV R2, #3FHMOV R2, #3FH
MOV 10, #99HMOV 10, #99H
MOV 11, #85HMOV 11, #85H
MOV 12, #3FHMOV 12, #3FH
R7R7
R6R6
R5R5
R4R4
R3R3
R2R2
R1R1
R0R0
1717
1616
1515
1414
1313
1212
1111
1010
Bank 2
Assembler DirectivesAssembler Directives
• are instructions to the Assembler programare instructions to the Assembler program
• For e.g.For e.g.
ORGORG 0H0H ;start at location 0;start at location 0
begin:begin: MOV R2, #5MOV R2, #5 ;load 5 in R2;load 5 in R2
MOV R3, #6MOV R3, #6 ;load 6 in R3;load 6 in R3
MOV A, R2MOV A, R2 ;copy R2 in A;copy R2 in A
ADD A, R3ADD A, R3 ;add A & R3;add A & R3
MOV R4, AMOV R4, A ;store result in R4;store result in R4
ENDEND ;end of asm source file;end of asm source file
Assembler Directives Cont.Assembler Directives Cont.
• ORGORG tells Assembler to place the followingtells Assembler to place the following
opcodes starting at memory location 0opcodes starting at memory location 0
• ENDEND indicates to the Assembler the end ofindicates to the Assembler the end of
the source codethe source code
• Assembler directives are also calledAssembler directives are also called pseudo-pseudo-
instructionsinstructions
• No opcodesNo opcodes are generated by assembler forare generated by assembler for
assembler directivesassembler directives
Assembling & Running a 8051 programAssembling & Running a 8051 program
Editor Program
Assembler Program
Linker Program
OH Program
Hex file

More Related Content

What's hot

Data transfer instruction set of 8085 micro processor
Data transfer instruction set of 8085 micro processorData transfer instruction set of 8085 micro processor
Data transfer instruction set of 8085 micro processorvishalgohel12195
 
8051 instruction set
8051 instruction set8051 instruction set
8051 instruction setStefan Oprea
 
Microprocessor instructions
Microprocessor instructionsMicroprocessor instructions
Microprocessor instructionshepzijustin
 
8051 assembly programming
8051 assembly programming8051 assembly programming
8051 assembly programmingsergeiseq
 
Stack and subroutine
Stack and subroutineStack and subroutine
Stack and subroutineAshim Saha
 
Stack in 8085 microprocessor
Stack in 8085 microprocessorStack in 8085 microprocessor
Stack in 8085 microprocessorhepzijustin
 
Microcontroller instruction set
Microcontroller instruction setMicrocontroller instruction set
Microcontroller instruction setShail Modi
 
Subroutine in 8051 microcontroller
Subroutine in 8051 microcontrollerSubroutine in 8051 microcontroller
Subroutine in 8051 microcontrollerbhadresh savani
 
Microprocessor Part 3
Microprocessor    Part  3Microprocessor    Part  3
Microprocessor Part 3Sajan Agrawal
 
Microprocessor and Microcontroller Lab Manual!
Microprocessor and Microcontroller Lab Manual!Microprocessor and Microcontroller Lab Manual!
Microprocessor and Microcontroller Lab Manual!PRABHAHARAN429
 
8051 addressing modes
 8051 addressing modes 8051 addressing modes
8051 addressing modesghoshshweta
 
8051 instruction set
8051 instruction set8051 instruction set
8051 instruction setprakash y
 

What's hot (20)

Stack and subroutine
Stack and subroutineStack and subroutine
Stack and subroutine
 
8051 programming in c
8051 programming in c8051 programming in c
8051 programming in c
 
Data transfer instruction set of 8085 micro processor
Data transfer instruction set of 8085 micro processorData transfer instruction set of 8085 micro processor
Data transfer instruction set of 8085 micro processor
 
8051 instruction set
8051 instruction set8051 instruction set
8051 instruction set
 
Microprocessor instructions
Microprocessor instructionsMicroprocessor instructions
Microprocessor instructions
 
Chapter 9
Chapter 9Chapter 9
Chapter 9
 
8051 assembly programming
8051 assembly programming8051 assembly programming
8051 assembly programming
 
Micro task1
Micro task1Micro task1
Micro task1
 
Stack and subroutine
Stack and subroutineStack and subroutine
Stack and subroutine
 
8085 instruction set
8085 instruction set8085 instruction set
8085 instruction set
 
Stack in 8085 microprocessor
Stack in 8085 microprocessorStack in 8085 microprocessor
Stack in 8085 microprocessor
 
Microcontroller instruction set
Microcontroller instruction setMicrocontroller instruction set
Microcontroller instruction set
 
Uc 2(vii)
Uc 2(vii)Uc 2(vii)
Uc 2(vii)
 
Subroutine in 8051 microcontroller
Subroutine in 8051 microcontrollerSubroutine in 8051 microcontroller
Subroutine in 8051 microcontroller
 
Intel 8051 Programming in C
Intel 8051 Programming in CIntel 8051 Programming in C
Intel 8051 Programming in C
 
Microprocessor Part 3
Microprocessor    Part  3Microprocessor    Part  3
Microprocessor Part 3
 
mup
mupmup
mup
 
Microprocessor and Microcontroller Lab Manual!
Microprocessor and Microcontroller Lab Manual!Microprocessor and Microcontroller Lab Manual!
Microprocessor and Microcontroller Lab Manual!
 
8051 addressing modes
 8051 addressing modes 8051 addressing modes
8051 addressing modes
 
8051 instruction set
8051 instruction set8051 instruction set
8051 instruction set
 

Viewers also liked

Unit ii microcontrollers final
Unit ii microcontrollers finalUnit ii microcontrollers final
Unit ii microcontrollers finalSARITHA REDDY
 
8051 Programming Instruction Set
 8051 Programming Instruction Set 8051 Programming Instruction Set
8051 Programming Instruction SetShreyans Pathak
 
Unit iv microcontrollers final
Unit iv microcontrollers finalUnit iv microcontrollers final
Unit iv microcontrollers finalSARITHA REDDY
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontrollerJhemi22
 
Embedded systems ppt iv part a
Embedded systems ppt iv   part aEmbedded systems ppt iv   part a
Embedded systems ppt iv part aanishgoel
 
Embedded systems ppt iv part b
Embedded systems ppt iv   part bEmbedded systems ppt iv   part b
Embedded systems ppt iv part banishgoel
 
C language programming
C language programmingC language programming
C language programmingpullarao29
 
8051 microcontroller notes continuous
8051 microcontroller notes continuous 8051 microcontroller notes continuous
8051 microcontroller notes continuous THANDAIAH PRABU
 
Interrupt programming with 8051 microcontroller
Interrupt programming with 8051  microcontrollerInterrupt programming with 8051  microcontroller
Interrupt programming with 8051 microcontrollerAnkit Bhatnagar
 
Chapter 7 8051 programming in c
Chapter 7  8051 programming in cChapter 7  8051 programming in c
Chapter 7 8051 programming in cAbdelrahman Elewah
 
INTRODUCTION TO MICROCONTROLLER
INTRODUCTION TO MICROCONTROLLERINTRODUCTION TO MICROCONTROLLER
INTRODUCTION TO MICROCONTROLLERAnkita Jaiswal
 
8051 programming skills using EMBEDDED C
8051 programming skills using EMBEDDED C8051 programming skills using EMBEDDED C
8051 programming skills using EMBEDDED CAman Sharma
 
Question paper with solution the 8051 microcontroller based embedded systems...
Question paper with solution  the 8051 microcontroller based embedded systems...Question paper with solution  the 8051 microcontroller based embedded systems...
Question paper with solution the 8051 microcontroller based embedded systems...manishpatel_79
 
Embedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerEmbedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerGaurav Verma
 

Viewers also liked (19)

Unit ii microcontrollers final
Unit ii microcontrollers finalUnit ii microcontrollers final
Unit ii microcontrollers final
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
 
8051 ch9-950217
8051 ch9-9502178051 ch9-950217
8051 ch9-950217
 
8051 Programming Instruction Set
 8051 Programming Instruction Set 8051 Programming Instruction Set
8051 Programming Instruction Set
 
Unit iv microcontrollers final
Unit iv microcontrollers finalUnit iv microcontrollers final
Unit iv microcontrollers final
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
 
Embedded systems ppt iv part a
Embedded systems ppt iv   part aEmbedded systems ppt iv   part a
Embedded systems ppt iv part a
 
Embedded systems ppt iv part b
Embedded systems ppt iv   part bEmbedded systems ppt iv   part b
Embedded systems ppt iv part b
 
C language programming
C language programmingC language programming
C language programming
 
Microcontroller 8051
Microcontroller 8051Microcontroller 8051
Microcontroller 8051
 
8051 ch9
8051 ch98051 ch9
8051 ch9
 
8051 microcontroller notes continuous
8051 microcontroller notes continuous 8051 microcontroller notes continuous
8051 microcontroller notes continuous
 
Interrupt programming with 8051 microcontroller
Interrupt programming with 8051  microcontrollerInterrupt programming with 8051  microcontroller
Interrupt programming with 8051 microcontroller
 
Interrupt
InterruptInterrupt
Interrupt
 
Chapter 7 8051 programming in c
Chapter 7  8051 programming in cChapter 7  8051 programming in c
Chapter 7 8051 programming in c
 
INTRODUCTION TO MICROCONTROLLER
INTRODUCTION TO MICROCONTROLLERINTRODUCTION TO MICROCONTROLLER
INTRODUCTION TO MICROCONTROLLER
 
8051 programming skills using EMBEDDED C
8051 programming skills using EMBEDDED C8051 programming skills using EMBEDDED C
8051 programming skills using EMBEDDED C
 
Question paper with solution the 8051 microcontroller based embedded systems...
Question paper with solution  the 8051 microcontroller based embedded systems...Question paper with solution  the 8051 microcontroller based embedded systems...
Question paper with solution the 8051 microcontroller based embedded systems...
 
Embedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontrollerEmbedded C programming based on 8051 microcontroller
Embedded C programming based on 8051 microcontroller
 

Similar to 8051 Assembly Language Programming Guide

Microcontroller 8051- soft.ppt
Microcontroller 8051- soft.pptMicrocontroller 8051- soft.ppt
Microcontroller 8051- soft.pptsteffydean
 
Microcontroller 8051 soft
Microcontroller 8051  softMicrocontroller 8051  soft
Microcontroller 8051 softbaluusa8
 
Embedded Systems Training & Live Projects @Technogroovy Systems India Pvt Ltd
Embedded Systems Training & Live Projects @Technogroovy Systems India Pvt Ltd Embedded Systems Training & Live Projects @Technogroovy Systems India Pvt Ltd
Embedded Systems Training & Live Projects @Technogroovy Systems India Pvt Ltd Technogroovy India
 
Unit -2 and 3 mekirirygiygyuguiguihiiqio
Unit -2 and 3 mekirirygiygyuguiguihiiqioUnit -2 and 3 mekirirygiygyuguiguihiiqio
Unit -2 and 3 mekirirygiygyuguiguihiiqioManikanta Reddy Sakam
 
Microprocessor system - summarize
Microprocessor system - summarizeMicroprocessor system - summarize
Microprocessor system - summarizeHisham Mat Hussin
 
8051 Microcontroller
8051 Microcontroller8051 Microcontroller
8051 MicrocontrollerNitin Ahire
 
8051 microcontrolle rclass1
8051 microcontrolle rclass18051 microcontrolle rclass1
8051 microcontrolle rclass1Nitin Ahire
 
8051 (microcontroller)class1
8051 (microcontroller)class18051 (microcontroller)class1
8051 (microcontroller)class1Nitin Ahire
 
Instruction set summary
Instruction set summary Instruction set summary
Instruction set summary janicetiong
 
8051 addressing modes
8051 addressing modes8051 addressing modes
8051 addressing modesVima Mali
 
Assemblylanguageprogrammingof8085 100523023329-phpapp02
Assemblylanguageprogrammingof8085 100523023329-phpapp02Assemblylanguageprogrammingof8085 100523023329-phpapp02
Assemblylanguageprogrammingof8085 100523023329-phpapp02Swati Watve-Phadke
 

Similar to 8051 Assembly Language Programming Guide (20)

Microcontroller 8051- soft.ppt
Microcontroller 8051- soft.pptMicrocontroller 8051- soft.ppt
Microcontroller 8051- soft.ppt
 
Microcontroller 8051 soft
Microcontroller 8051  softMicrocontroller 8051  soft
Microcontroller 8051 soft
 
12 mt06ped008
12 mt06ped008 12 mt06ped008
12 mt06ped008
 
Emb day2 8051
Emb day2 8051Emb day2 8051
Emb day2 8051
 
Embedded Systems Training & Live Projects @Technogroovy Systems India Pvt Ltd
Embedded Systems Training & Live Projects @Technogroovy Systems India Pvt Ltd Embedded Systems Training & Live Projects @Technogroovy Systems India Pvt Ltd
Embedded Systems Training & Live Projects @Technogroovy Systems India Pvt Ltd
 
Unit -2 and 3 mekirirygiygyuguiguihiiqio
Unit -2 and 3 mekirirygiygyuguiguihiiqioUnit -2 and 3 mekirirygiygyuguiguihiiqio
Unit -2 and 3 mekirirygiygyuguiguihiiqio
 
8051 Microcontroller
8051 Microcontroller8051 Microcontroller
8051 Microcontroller
 
Unit 4.pptx
Unit 4.pptxUnit 4.pptx
Unit 4.pptx
 
Microprocessor system - summarize
Microprocessor system - summarizeMicroprocessor system - summarize
Microprocessor system - summarize
 
module-2.pptx
module-2.pptxmodule-2.pptx
module-2.pptx
 
MCUnit 4and 5_New.pptx
MCUnit 4and 5_New.pptxMCUnit 4and 5_New.pptx
MCUnit 4and 5_New.pptx
 
8051 Microcontroller
8051 Microcontroller8051 Microcontroller
8051 Microcontroller
 
8051 microcontrolle rclass1
8051 microcontrolle rclass18051 microcontrolle rclass1
8051 microcontrolle rclass1
 
8051 (microcontroller)class1
8051 (microcontroller)class18051 (microcontroller)class1
8051 (microcontroller)class1
 
Instruction set summary
Instruction set summary Instruction set summary
Instruction set summary
 
8051 addressing modes
8051 addressing modes8051 addressing modes
8051 addressing modes
 
Lec04
Lec04Lec04
Lec04
 
Lec04
Lec04Lec04
Lec04
 
Addressing modes
Addressing modesAddressing modes
Addressing modes
 
Assemblylanguageprogrammingof8085 100523023329-phpapp02
Assemblylanguageprogrammingof8085 100523023329-phpapp02Assemblylanguageprogrammingof8085 100523023329-phpapp02
Assemblylanguageprogrammingof8085 100523023329-phpapp02
 

8051 Assembly Language Programming Guide

  • 2. Assembly LanguageAssembly Language • Provides ‘English like’ words called ‘mnemonics’Provides ‘English like’ words called ‘mnemonics’ for the machine codes.for the machine codes. • For e.g.For e.g. – 0010 11110010 1111 (2FH), is a 8-bit instruction in(2FH), is a 8-bit instruction in MachineMachine languagelanguage of 8051 to add two numbersof 8051 to add two numbers – ADD A, R7ADD A, R7 is anis an Assembly languageAssembly language instructioninstruction of 8051 to add two numbersof 8051 to add two numbers
  • 3. High-level LanguagesHigh-level Languages • These languages areThese languages are machine-independentmachine-independent • Programmer may not know the internal detailsProgrammer may not know the internal details of the CPUof the CPU • For e.g.For e.g. Embedded CEmbedded C, Embedded Java etc., Embedded Java etc. • High-level language programs are translated toHigh-level language programs are translated to machine code using a program called ‘machine code using a program called ‘CompilerCompiler’’
  • 4. Programming using ‘Assembly’Programming using ‘Assembly’ • A program called ‘A program called ‘AssemblerAssembler’ is needed to’ is needed to translate an Assembly Language program totranslate an Assembly Language program to machine languagemachine language • Assembly language is ‘Assembly language is ‘machine dependentmachine dependent’,’, i.e. ai.e. a low-levellow-level programming languageprogramming language • A programmer must know theA programmer must know the – Internal details of CPUInternal details of CPU – Instruction setInstruction set
  • 5. • 8-bit Registers of 80518-bit Registers of 8051 • TheseThese CPU RegistersCPU Registers are used toare used to store data temporarilystore data temporarily • TheThe Accumulator, register AAccumulator, register A, is, is used for all Arithmetic & Logicused for all Arithmetic & Logic operations.operations. • Registers R0 – R7 are for generalRegisters R0 – R7 are for general useuse Programming Model of 8051Programming Model of 8051 AA BB R0R0 R1R1 R2R2 R3R3 R4R4 R5R5 R6R6 R7R7
  • 6. Assembly Language programAssembly Language program • Consists of a series of Assembly languageConsists of a series of Assembly language instructionsinstructions • Structure of Assembly LanguageStructure of Assembly Language – Has four fieldsHas four fields [label:][label:] mnemonicmnemonic [operands][operands] [;comments][;comments] start:start: MOVMOV R5, #25HR5, #25H ;load 25H in R5;load 25H in R5 MOVMOV A, #5A, #5 ;load 5 in A;load 5 in A ADDADD A, R5A, R5 ;add A & R5;add A & R5
  • 7. 80518051 FlagsFlags andand PSWPSW RegisterRegister • The flag register in 8051 is calledThe flag register in 8051 is called Program StatusProgram Status WordWord (PSW)register(PSW)register • PSW is a 8-bit registerPSW is a 8-bit register • 8051 has 4 conditional flags – CY(Carry),8051 has 4 conditional flags – CY(Carry), AC(Auxiliary Carry), OV(Overflow), P(Parity)AC(Auxiliary Carry), OV(Overflow), P(Parity) CYCY ACAC F0F0 RS1RS1 RS0RS0 OVOV ---- PP D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0
  • 8. 8051 Flags8051 Flags • CY(Carry Flag)CY(Carry Flag) is SETis SET – if aif a carrycarry is generated afteris generated after additionaddition – if aif a borrowborrow is generated afteris generated after subtractionsubtraction • Can be SET/CLEARED by usingCan be SET/CLEARED by using instructions such asinstructions such as SETB C, CLR CSETB C, CLR C • AC(Auxiliary Carry Flag) is SETAC(Auxiliary Carry Flag) is SET – If there is a carry from bit D3 to D4If there is a carry from bit D3 to D4 – Used for BCD arithmeticUsed for BCD arithmetic
  • 9. 8051 Flags8051 Flags • P(Parity Flag)P(Parity Flag) reflects no. of 1’s in register Areflects no. of 1’s in register A – SET if ODD no. of 1’sSET if ODD no. of 1’s – RESET if EVEN no. of 1’sRESET if EVEN no. of 1’s • OV(Overflow Flag)OV(Overflow Flag) – Used with signed numbersUsed with signed numbers – Detects the overflow of the higher-order bit toDetects the overflow of the higher-order bit to the sign bitthe sign bit
  • 10. 8051 Register Banks8051 Register Banks • 8051 has 4 register banks8051 has 4 register banks • Each bank has 8 registers named R0 to R7Each bank has 8 registers named R0 to R7 • Only one register bank can be accessed byOnly one register bank can be accessed by 8051 at a time8051 at a time • BitsBits RS0RS0 && RS1RS1 ofof PSWPSW register are used toregister are used to select any one of the four register banksselect any one of the four register banks
  • 11. Register Bank Selection bitsRegister Bank Selection bits CYCY ACAC F0F0 RS1RS1 RS0RS0 OVOV ---- PP D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0 RegisterRegister BankBank RS0RS0 RS1RS1 AddressAddress 00 00 00 00 – 07H00 – 07H 11 00 11 08 – 0FH08 – 0FH 22 11 00 10H – 17H10H – 17H 33 11 11 18H – 1FH18H – 1FH
  • 12. RAM space allocation in 8051RAM space allocation in 8051 • 8051 has8051 has 128 bytes128 bytes of RAMof RAM • RAM address space isRAM address space is 00H00H toto 7FH7FH • 8051 RAM is divided into 3 groups8051 RAM is divided into 3 groups – Register banks and StackRegister banks and Stack – Bit-addressable memoryBit-addressable memory – Scratch Pad memoryScratch Pad memory
  • 13. 00 07 08 0F 10 17 18 1F 20 2F 30 7F Register Bank 0 Register Bank 1 (Stack) Register Bank 2 Register Bank 3 Bit Addressable RAM Scratch Pad RAM RA
  • 14. Default Register BankDefault Register Bank 77 66 55 44 33 22 11 00 R7R7 R6R6 R5R5 R4R4 R3R3 R2R2 R1R1 R0R0 R7R7 R6R6 R5R5 R4R4 R3R3 R2R2 R1R1 R0R0 R7R7 R6R6 R5R5 R4R4 R3R3 R2R2 R1R1 R0R0 1F1F 1E1E 1D1D 1C1C 1B1B 1A1A 1919 1818 1717 1616 1515 1414 1313 1212 1111 1010 FF EE DD CC BB AA 99 88 R7R7 R6R6 R5R5 R4R4 R3R3 R2R2 R1R1 R0R0 Bank 0 Bank 1 Bank 2 Bank 3
  • 15. Using RAM addressesUsing RAM addresses MOV R2, #3FHMOV R2, #3FH MOV 02, #3FHMOV 02, #3FH MOV R1, #85HMOV R1, #85H MOV 01, #85HMOV 01, #85H MOV R0, #99HMOV R0, #99H MOV 00, #99HMOV 00, #99H 77 66 55 44 33 22 11 00 R7R7 R6R6 R5R5 R4R4 R3R3 R2R2 R1R1 R0R0 Bank 0 Q. Which register bank is used by default, when 8051 is powered up? Ans. Register Bank 0
  • 16. How to switch Register banks?How to switch Register banks? CYCY ACAC F0F0 RS1RS1 RS0RS0 OVOV ---- PP D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0 Register BankRegister Bank RS0RS0 RS1RS1 AddressAddress 00 00 00 00 – 07H00 – 07H 11 00 11 08 – 0FH08 – 0FH 22 11 00 10H – 17H10H – 17H 33 11 11 18H – 1FH18H – 1FH Program Status Word Register
  • 17. SETB PSW.4SETB PSW.4 ; select bank 2; select bank 2 MOV R0, #99HMOV R0, #99H MOV R1, #85HMOV R1, #85H MOV R2, #3FHMOV R2, #3FH MOV 10, #99HMOV 10, #99H MOV 11, #85HMOV 11, #85H MOV 12, #3FHMOV 12, #3FH R7R7 R6R6 R5R5 R4R4 R3R3 R2R2 R1R1 R0R0 1717 1616 1515 1414 1313 1212 1111 1010 Bank 2
  • 18. Assembler DirectivesAssembler Directives • are instructions to the Assembler programare instructions to the Assembler program • For e.g.For e.g. ORGORG 0H0H ;start at location 0;start at location 0 begin:begin: MOV R2, #5MOV R2, #5 ;load 5 in R2;load 5 in R2 MOV R3, #6MOV R3, #6 ;load 6 in R3;load 6 in R3 MOV A, R2MOV A, R2 ;copy R2 in A;copy R2 in A ADD A, R3ADD A, R3 ;add A & R3;add A & R3 MOV R4, AMOV R4, A ;store result in R4;store result in R4 ENDEND ;end of asm source file;end of asm source file
  • 19. Assembler Directives Cont.Assembler Directives Cont. • ORGORG tells Assembler to place the followingtells Assembler to place the following opcodes starting at memory location 0opcodes starting at memory location 0 • ENDEND indicates to the Assembler the end ofindicates to the Assembler the end of the source codethe source code • Assembler directives are also calledAssembler directives are also called pseudo-pseudo- instructionsinstructions • No opcodesNo opcodes are generated by assembler forare generated by assembler for assembler directivesassembler directives
  • 20. Assembling & Running a 8051 programAssembling & Running a 8051 program Editor Program Assembler Program Linker Program OH Program Hex file