Chapter 3 JUMP, LOOP and CALL Instructions
-
Upload
samantha-koch -
Category
Documents
-
view
64 -
download
3
description
Transcript of Chapter 3 JUMP, LOOP and CALL Instructions
11
Suranaree UniversitySuranaree UniversityOf TechnologyOf Technologyมทสมทส
2002 Anant Oonsivilai2002 Anant Oonsivilai
Chapter 3Chapter 3JUMP, LOOP and CALL JUMP, LOOP and CALL
InstructionsInstructions
22 2002 Anant Oonsivilai2002 Anant Oonsivilai
OutlinesOutlines
Loop instructionsLoop instructionsConditional jump instructionsConditional jump instructionsConditions determining conditional jumpConditions determining conditional jumpUnconditional long & short jumpsUnconditional long & short jumpsCalculate target addresses for jumpsCalculate target addresses for jumpsSubroutinesSubroutinesUsing stack in subroutinesUsing stack in subroutinesCrystal frequency vs. machine cycleCrystal frequency vs. machine cycleCode programs to generate time delayCode programs to generate time delay
33 2002 Anant Oonsivilai2002 Anant Oonsivilai
LoopingLooping- DJNZ
44 2002 Anant Oonsivilai2002 Anant Oonsivilai
Loop inside a Loop (Nested Loop inside a Loop (Nested Loop)Loop)
55 2002 Anant Oonsivilai2002 Anant Oonsivilai
8051 Conditional Jump Instructions8051 Conditional Jump Instructions
66 2002 Anant Oonsivilai2002 Anant Oonsivilai
Conditional Jump ExampleConditional Jump Example
- JNZ , JNC
77 2002 Anant Oonsivilai2002 Anant Oonsivilai
Conditional Jump ExampleConditional Jump Example
88 2002 Anant Oonsivilai2002 Anant Oonsivilai
Unconditional Jump InstructionsUnconditional Jump Instructions
All conditional jumps are short jumpsAll conditional jumps are short jumps Target address within -128 to +127 of PCTarget address within -128 to +127 of PC
LJMPLJMP (long jump): 3-byte instruction (long jump): 3-byte instruction 2-byte target address: 0000 to FFFFH2-byte target address: 0000 to FFFFH Original 8051 has only 4KB on-chip ROMOriginal 8051 has only 4KB on-chip ROM
SJMPSJMP (short jump): 2-byte instruction (short jump): 2-byte instruction 1-byte relative address: -128 to +1271-byte relative address: -128 to +127
99 2002 Anant Oonsivilai2002 Anant Oonsivilai
Calculating Short Jump AddressesCalculating Short Jump Addresses
1010 2002 Anant Oonsivilai2002 Anant Oonsivilai
Calculating Short Jump AddressesCalculating Short Jump Addresses
1111 2002 Anant Oonsivilai2002 Anant Oonsivilai
Call InstructionsCall Instructions
LCALLLCALL (long call): 3-byte instruction (long call): 3-byte instruction 2-byte address2-byte address Target address within 64K-byte rangeTarget address within 64K-byte range
ACALLACALL (absolute call): 2-byte instruction (absolute call): 2-byte instruction 11-bit address11-bit address Target address within 2K-byte rangeTarget address within 2K-byte range
1212 2002 Anant Oonsivilai2002 Anant Oonsivilai
LCALLLCALL
1313 2002 Anant Oonsivilai2002 Anant Oonsivilai
CALL Instruction & Role of StackCALL Instruction & Role of Stack
1414 2002 Anant Oonsivilai2002 Anant Oonsivilai
CALL Instruction & Role of StackCALL Instruction & Role of Stack
1515 2002 Anant Oonsivilai2002 Anant Oonsivilai
Using PUSH & POP in SubroutinesUsing PUSH & POP in Subroutines
1616 2002 Anant Oonsivilai2002 Anant Oonsivilai
Using PUSH & POP in SubroutinesUsing PUSH & POP in Subroutines
1717 2002 Anant Oonsivilai2002 Anant Oonsivilai
Using PUSH & POP in SubroutinesUsing PUSH & POP in Subroutines
1818 2002 Anant Oonsivilai2002 Anant Oonsivilai
Calling SubroutinesCalling Subroutines
1919 2002 Anant Oonsivilai2002 Anant Oonsivilai
Calling SubroutinesCalling Subroutines
2020 2002 Anant Oonsivilai2002 Anant Oonsivilai
ACALL (absolute call)ACALL (absolute call)
2121 2002 Anant Oonsivilai2002 Anant Oonsivilai
Programming EfficientlyProgramming Efficiently
2222 2002 Anant Oonsivilai2002 Anant Oonsivilai
Time Delay Generation & CalculationTime Delay Generation & Calculation
1 instruction = 1 instruction = nn machine cycle machine cycle
1 machine cycle = 12 clock cycles1 machine cycle = 12 clock cycles
2323 2002 Anant Oonsivilai2002 Anant Oonsivilai
Delay CalculationDelay Calculation
2424 2002 Anant Oonsivilai2002 Anant Oonsivilai
Delay Calculation ExampleDelay Calculation Example
2525 2002 Anant Oonsivilai2002 Anant Oonsivilai
Delay Calculation ExampleDelay Calculation Example
2626 2002 Anant Oonsivilai2002 Anant Oonsivilai
Increasing Delay Using NOPIncreasing Delay Using NOP
2727 2002 Anant Oonsivilai2002 Anant Oonsivilai
Large Delay Using Nested LoopLarge Delay Using Nested Loop