© 1999 Scenix Semiconductor, Inc. All rights reserved. - 30 - www.scenix.com SX18AC  / SX20AC / SX28AC 15.10.2  Page Jump Operation
When  a  JMP  instruction  is  executed  and  the  intended
destination  is  on  a  different  page,  the  page  select  bits
must be initialized with appropriate values to point to the
desired page before the jump occurs. This can be done
easily with SETB and CLRB instructions or by writing a
value  to  the  STATUS  register.  The  device  also  has  the
PAGE instruction, which automatically selects the page in
a single-cycle execution.
Note: “N” must be 0, 1, 2, or 3. 15.10.3  Call Operation
The following happens when a CALL instruction is exe-
cuted:
•    The current value of the program counter is increment-
      ed and pushed onto the top of the stack.
•    The lower eight bits of the label address are copied into
      the lower eight bits of the program counter.
•    The ninth bit of the Program Counter is cleared to zero.
•    The page select bits (in STATUS register) are copied
      into the upper two bits of the Program Counter.
This  means  that  the  call  destination  must  start  in  the
lower  half  of  any  page.  For  example,  00h-0FFh,  200h-
2FFh, 400h-4FFh, etc.
15.10.4  Page Call Operation
When  a  subroutine  that  resides  on  a  different  page  is
called, the page select bits must contain the proper val-
ues to point to the desired page before the call instruction
is  executed.  This  can  be  done  easily  using  SETB  and
CLRB instructions or writing a value to the STATUS reg-
ister.  The  device  also  has  the  PAGE  instruction,  which
automatically  selects  the  page  in  a  single-cycle  execu-
tion.
Note:“N” must be 0, 1, 2, or 3.
15.11    Return Instructions The  device  has  several  instructions  for  returning  from
subroutines  and  interrupt  service  routines.  The  return
from   subroutine   instructions   are   RET   (return   without
affecting W), RETP (same as RET but affects PA1:PA0),
RETI (return from interrupt), RETIW (return and add W to
RTCC), and RETW #literal (return and place literal in W).
The literal serves as an immediate data value from mem-
ory. This instruction can be used for table lookup opera-
tions. To do table lookup, the table must contain a string
of RETW #literal instructions. The first instruction just in
front of the table calculates the offset into the table. The
table can be used as a result of a CALL.
15.12    Subroutine Operation 15.12.1  Push Operation
When   a   subroutine   is   called,   the   return   address   is
pushed   onto   the   subroutine   stack.   Specifically,   each
address in the stack is moved to the next lower level in
order  to  make  room  for  the  new  address  to  be  stored.
Stack  1  receives  the  contents  of  the  program  counter.
Stack 8 is overwritten with what was in Stack 7. The con-
tents of stack 8 are lost.
PAGE N STATUS<6:5> JMP LABEL PC<10:9> PC<8:0> STATUS<6:5> 0 CALL LABEL PC<10:9> PC<8>       PC<7:0> PAGE N STATUS<6:5> 0 CALL LABEL PC<10:9> PC<8> PC<7:0> PC<10:0> STACK 1 STACK 2 STACK 3 STACK 4 STACK 5 STACK 6 STACK 7 STACK 8