16-1
8052 Assembly Language
Chapter 16 describes the 8052 Assembly Language.
Topic Page
Chapter 16
16.1 Description 16-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2 Syntax 16-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3 Number Bases 16-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4 Expressions 16-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.5 Operator Precedence 16-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.6 Characters and Character Strings 16-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.7 Changing Program Flow (LJMP, SJMP, AJMP) 16-6. . . . . . . . . . . . . . . . . . . . . . .
16.8 Subroutines (LCALL, ACALL, RET) 16-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.9 Register Assignment (MOV) 16-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.10 Incrementingand Decrementing Registers (INC, DEC) 16-11. . . . . . . . . . . . .
16.11 Program Loops (DJNZ) 16-12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.12 Setting, Clearing and Moving bits (SETB, CLR, CPL, MOV) 16-13. . . . . . . .
16.13 Bit-Based Decisions and Branching (JB, JBC, JNB, JC, JNC) 16-15. . . . . .
16.14 Value Comparison (CJNE) 16-16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.15 Less Than and Greater Than Comparison (CJNE) 16-17. . . . . . . . . . . . . . . . .
16.16 Zero and Nonzero Decisions (JZ, JNZ) 16-18. . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.17 Performing Additions (ADD, ADDC) 16-18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.18 Performing Subtractions (SUBB) 16-20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.19 Performing Multiplication (MUL) 16-21. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.20 Performing Division (DIV) 16-22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.21 Shifting Bits (RR, RRC, RL, RLC) 16-23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.22 Bit-Wise Logical Intructions (ANL, ORL, XRL) 16-24. . . . . . . . . . . . . . . . . . . . .
16.23 Exchanging Register Values (XCH) 16-26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.24 Swapping Accumulator Nibbles (SWAP) 16-26. . . . . . . . . . . . . . . . . . . . . . . . . .
16.25 Exchanging Nibbles between Accumulator and Internal RAM (XCHD) 16-26.
16.26 Adjusting Accumulator for BCD Addition (DA) 16-27. . . . . . . . . . . . . . . . . . . .
16.27 Using the Stack (PUSH, POP) 16-28. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.28 Setting the Data Pointer, DPTR (MOV DPTR) 16-30. . . . . . . . . . . . . . . . . . . . . .
16.29 Reading and Writing External RAM/Data Memory (MOVX) 16-31. . . . . . . . . .
16.30 Reading Code Memory/Tables (MOVC) 16-32. . . . . . . . . . . . . . . . . . . . . . . . . . .
16.31 Using Jump Tables (JMP @A+DPTR) 16-34. . . . . . . . . . . . . . . . . . . . . . . . . . . . .