Branching and looping l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 55

Branching and Looping PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on
  • Presentation posted in: General

Branching and Looping. Chapter 5. Branching and Looping. 68HC12 Branch Instructions WHYP Branching and Looping Words Recursion in WHYP. Branch Displacement. Negative Branch. Branch on Z flag. Branch on Z flag. Branch on Z flag. Branch on N flag. Branch on N flag.

Download Presentation

Branching and Looping

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Branching and Looping

Chapter 5


Branching and Looping

  • 68HC12 Branch Instructions

  • WHYP Branching and Looping Words

  • Recursion in WHYP


Branch Displacement


Negative Branch


Branch on Z flag


Branch on Z flag


Branch on Z flag


Branch on N flag


Branch on N flag


Branch on C and V flags


Bit-Condition Branch Instruction


How many times is the instruction INCB executed?


Signed Branch Instructions


Branching and Looping

  • 68HC12 Branch Instructions

  • WHYP Branching and Looping Words

  • Recursion in WHYP


WHYP Branching and Looping Words

  • IF…ELSE…THEN

  • FOR…NEXT

  • BEGIN…AGAIN

  • BEGIN…WHILE…REPEAT

  • DO…LOOP


68HC12 Code for <


68HC12 Code for U<


TRUE = -1

FALSE = 0


68HC12 Code for AND


IF…ELSE…THEN

<cond> IF <true statements> ELSE <false statements> THEN


TRUE iftest

true statements

next statements

FALSE iftest

next statements


TRUE if.else.test

true statements

next statements

FALSE if.else.test

false statements

next statements


IF…ELSE…THEN Example


FOR…NEXT Loop

n FOR <WHYP statements> NEXT


: stars for ." *" next ;


FOR…NEXT Delay Loop

8 MHz clock: #ms = #clock_cycles/8 = 7.75 +1.375*N

N = (#ms - 7.75)/1.375

Ex: 50 ms delay: N = (50000 - 7.75)/1.375 = 36358


Longer Delays

Note: A 10 second delay on the MC68HC12A4EVB

takes about 17 seconds because one wait state

has been added to each access to external RAM.

The 68HC11 takes over twice as long to execute

the same delay instructions.


BEGIN…AGAIN

BEGIN <WHYP statements> AGAIN


BEGIN…UNTIL

BEGIN <WHYP statements> <flag> UNTIL


BEGIN…WHILE…REPEAT

BEGIN <words> <flag> WHILE <words> REPEAT


Sine and Arcsine


Sine and Arcsine


Sine and Cosine


DO…LOOP

<limit> <index> DO <WHYP statements> LOOP

Moves <limit> and <index>

to return stack

Increments <index> on return stack

and loops back to <WHYP statements>

if <index> is less than <limit>,

else pop <limit> and <index> from

return stack and exit loop


DO…LOOP

The WHYP word I copies the index value from

the return stack to the top of the parameter stack.

: test( -- )

11 1 DO

I .

LOOP ;

will print

1 2 3 4 5 6 7 8 9 10


DO…LOOP Example


The Word LEAVE

Exits a DO loop prematurely


Branching and Looping

  • 68HC12 Branch Instructions

  • WHYP Branching and Looping Words

  • Recursion in WHYP


Recursion in WHYP

n! = n * (n - 1)!


Recursion in WHYP


  • Login