Chapter 3 JUMP, LOOP and CALL Instructions

Post on 02-Jan-2016

66 views 3 download

description

Chapter 3 JUMP, LOOP and CALL Instructions. Outlines. Loop instructions Conditional jump instructions Conditions determining conditional jump Unconditional long & short jumps Calculate target addresses for jumps Subroutines Using stack in subroutines Crystal frequency vs. machine cycle - PowerPoint PPT Presentation

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