beautypg.com

Pushd (push from offset to tos and next, 16 bit), R_shift16 (right shift, 16 bit) – Echelon Neuron User Manual

Page 200

background image

Example:

; (a, b, c, d)

call _push4 ; (a, b, c, d, a, b, c ,d)

_pushd (Push from Offset to TOS and NEXT, 16

Bit)

This function is used to fetch a 16-bit location from the stack. It is similar to

_push except that it loads two bytes rather than one. For _pushd, the offset is

two less than what would be used in the POP instruction.

Stack Transformation: (offset, …, value(2), … -- value(2), …, value(2), …)
Location: Far
Registers Affected: None

Example:
This example does the equivalent of two PUSH [DSP][-3] instructions.

; (a, b, c, d, e)

push #@lb(-d’5) ; (-d’5, a, b, c, d, e)

callf _pushd ; (d, e, a, b, c, d, e)

_pushd1 (Push Short from Offset to TOS and

NEXT, 16 Bit)

This function is the same as _pushd, except that –d’18 is added to the offset

before fetching. This allows the caller to use a PUSHS instruction to load the

offset.

Stack Transformation: (offset, …, value(2), … -- value(2), …, value(2), …)
Location: Far
Registers Affected: None

Example:
This example does the equivalent of two PUSH [DSP][-9] instructions.

; (a, b, c, d, …, h, i, j, k)

pushs #7

; (7, a, b, c, d, e)

callf _pushd1 ; (j, k, a, b, c, d, …, j, k)

_r_shift16 (Right Shift, 16 Bit)

This function shifts a 16-bit unsigned integer right. b must be in the range 0..7.

190

System-Provided Functions