Specifications

PL 3120/PL 3150/PL 3170 Power Line Smart Transceiver Data Book 15
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
POPD [PTR] 6 1 Pop to 16-bit pointer [0 to 3], low byte first
PUSH/POP [PTR][TOS] 6 1 EA = (16-bit pointer) + TOS
PUSH/POP [PTR][D] 7 2 EA = (16-bit pointer) + displacement [0 to 255]
PUSH/POP absolute 7 3 Absolute memory address
IN/OUT 7 + 4n 1 Fast I/O instruction, transfer n bytes
Table 2.5 ALU Instructions
Mnemonic Cycles Size (bytes) Operation
INC/DEC/NOT 2 1 Increment/decrement/negate TOS
ROLC/RORC 2 1 Rotate left/right TOS through carry
SHL/SHR 2 1 Unsigned left/right shift TOS, clear carry
SHLA/SHRA 2 1 Signed left/right shift TOS into carry
ADD/AND/OR/XOR/ADC 4 1 Operate with NEXT on TOS, drop NEXT
ADD/AND/OR/XOR #literal 3 2 Operate with literal on TOS
(ADD/AND/OR/XOR)_R 7 1 Operate with NEXT on TOS, drop NEXT and
return
ALLOC #literal 3 1 Add [1 to 8] to data stack pointer
DEALLOC_R #literal 6 1 Subtract [1 to 8] from data stack pointer and return
SUB NEXT,TOS 4 1 TOS = NEXT - TOS, drop NEXT
SBC NEXT, TOS 4 1 TOS = NEXT - TOS - carry, drop NEXT
SUB TOS,NEXT 4 1 TOS = TOS - NEXT, drop NEXT
XCH 4 1 Exchange TOS and NEXT
INC [PTR] 6 1 Increment 16-bit pointer [0 to 3]