Futurebasic/Language/Reference/push
Contents |
[edit] PUSH
[edit] statements
[edit] Syntax
PUSH(var)
PUSH {BYTE|WORD|LONG}(address&)
[edit] Description
These statements put 1, 2 or 4 bytes onto the CPU stack, and adjust the stack pointer by a corresponding amount. PUSH is the opposite of POP.
If you use the first syntax, the data is copied from var, which must be a variable. The number of bytes put onto the stack depends on the data type of var:
"Image Was Here"
(No other variable types are valid with PUSH(var).)
If you use the second syntax, the data is copied from the memory which begins at address&, which must be a long integer expression or a POINTER variable. The number of bytes put onto the stack depends on which keyword you use:
"Image Was Here"
In CPU68k compiles, PUSH always adjusts the stack pointer by an even number of bytes. If you use PUSH(byteVar) or PUSH BYTE(address&) in a CPU68k compile, the stack pointer will be adjusted by 2 bytes, even though only one byte is copied from byteVar or address&.
PUSH is meant for careful use by advanced programmers. Your system can crash if the stack pointer is not adjusted carefully.
[edit] See Also
POP
This page may need to be