3, 2.42.4, and 2.5 out, 3, 2.42.4, and – Echelon FT 3150 Smart Transceiver User Manual
Page 18
Chapter 2 - Hardware Resources
12
FT 3120 / FT 3150 Smart Transceiver Data Book
Table 2.3 Program Control Instructions
Table 2.4 Memory/Stack Instructions
Mnemonic
Cycles
Size (bytes)
Description
Comments
NOP
1
1
No operation
SBR
1
1
Short unconditional branch
Offset 0 to 15
BR/BRC/
BRNC
2
2
Branch, branch on (not) carry
Offset -128 to +127
SBRZ/SBRNZ
3
1
Short branch on TOS (not)
zero
Offset 0 to 15. Drops TOS
BRF
4
3
Unconditional branch far
Absolute address
BRZ/BRNZ
4
2
Branch on TOS (not) zero
Offset -128 to +127. Drops TOS
RET
4
1
Return from subroutine
Drops two bytes from return
stack
BRNEQ
4/6
3
Branch if TOS not equal
(taken/not taken)
Offset -128 to +127. Drops TOS
if equal
DBRNZ
5
2
Decrement [RSP] and branch
if not zero
Offset -128 to +127. If not
taken, drops one byte from
return stack
CALLR
5
2
Call subroutine relative
Offset -128 to +127. Pushes two
bytes to return stack
CALL
6
2
Call subroutine
Address in low 8KB. Pushes
two bytes to return stack
CALLF
7
3
Call subroutine far
Absolute address. Pushes two
bytes to return stack
Mnemonic
Cycles
Size (bytes)
Comments / Effective Address (EA)
PUSH TOS
3
1
Increment DSP, duplicate TOS into NEXT
DROP TOS
3
1
Move NEXT to TOS, decrement DSP
DROP_R TOS
6
1
Move NEXT to TOS, decrement DSP, return from
call
PUSH (NEXT, DSP, RSP,
FLAGS)
4
1
Push processor register
POP (DSP, RSP, FLAGS)
4
1
Pop processor register
DROP NEXT
2
1
Decrement DSP
DROP_R NEXT
5
1
Decrement DSP and return from call
PUSH/POP !D
4
1
Byte register [8 to 23]
PUSH !TOS
4
1
EA = BP + TOS, push byte to NEXT
POP !TOS
4
1
EA = BP + TOS, pop byte from NEXT
PUSH [RSP]
4
1
Push from return stack to data stack, RSP
unchanged
DROP [RSP]
2
1
Increment RSP
PUSHS #literal
4
1
Push short literal value [0 to 7]
PUSH #literal
4
2
Push 8-bit literal value [0 to 255]
PUSHPOP
5
1
Pop from return stack, push to data stack
POPPUSH
5
1
Pop from data stack, push to return stack
LDBP address
5
3
Load base page pointer with 16-bit value
PUSH/POP [DSP][-D]
5
1
EA = BP + DSP - displacement [1 to 8]
PUSHD #literal
6
3
16-bit literal value (high byte first)
PUSHD [PTR]
6
1
Push from 16-bit pointer [0 to 3], high byte first