You are here: Home DOCUMENTATION information SBASIC Manual - Page 50

Technological Arts Inc.

Your Shopping Cart

Your Cart is currently empty.

SBASIC Manual - Page 50

Article Index
SBASIC Manual
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Page 9
Page 10
Page 11
Page 12
Page 13
Page 14
Page 15
Page 16
Page 17
Page 18
Page 19
Page 20
Page 21
Page 22
Page 23
Page 24
Page 25
Page 26
Page 27
Page 28
Page 29
Page 30
Page 31
Page 32
Page 33
Page 34
Page 35
Page 36
Page 37
Page 38
Page 39
Page 40
Page 41
Page 42
Page 43
Page 44
Page 45
Page 46
Page 47
Page 48
Page 49
Page 50
Page 51
Page 52
Page 53
Page 54
Page 55
Page 56
Page 57
Page 58
Page 59
Page 60
Table of Contents
Index
All Pages

     SBasic User's Manual     SBasic Version 2.7             Page 50
     Printed:  December 5, 1999
     The data stack



     SBasic supports a data stack, for temporary storage of data.  For the
     68hc11 and 68hc12 MCUs, the data stack resides about 32 bytes below
     the return stack.  Both stacks grow downward (towards lower addresses)
     as items are pushed onto them.

     Do not confuse the use of these two stacks.  The return stack holds
     all data used by the target MCU in servicing interrupts and subroutine
     calls.  Items placed on the return stack are not currently accessible
     by your SBasic code.

     The data stack, however, contains items explicitly placed by your
     program.  You are free to use the data stack in any manner you like,
     and items placed on the stack will remain until your code specifically
     removes or modifies them.

     You can push items onto the data stack by using the PUSH statement.
     The PUSH statement takes a single argument; the 16-bit value of that
     argument will be pushed onto the data stack.

     Example:

          push n+5

     adds 5 to the current value of N and pushes the sum onto the data
     stack.  The value in N does not change.

     The size of the data stack depends on where you place the return
     stack, using the /S option.  The data stack will grow downward in
     memory until it runs into whatever values, if any, lie below it.
     There are no runtime checks for pushing too many items onto the data
     stack.

     You can pull (or pop) items from the data stack by using the POP()
     function.  POP() returns the top (most recent) item pushed onto the
     data stack.

     Example:

          n = pop() + 5

     pops the top item off the data stack, adds 5 to that value, and stores
     the sum in variable N.

     There are no runtime checks for popping too many items from the data
     stack.  The data stack resides below the return stack, and popping
     items causes the data stack pointer to move upwards in memory.  If you
     pop more items from the data stack than you pushed onto it, you risk
     corrupting the return stack.  This in turn will cause your program to
     crash on a later RETURN statement.