Datasheet
Propeller™ P8X32A Datasheet www.parallax.com
Copyright © Parallax Inc. Page 23 of 37 Rev 1.1 9/12/2008
iiiiii zcri cccc ddddddddd sssssssss
Instruction Description Z Result C Result R
Clocks
010111 0011 1111 ????????? sssssssss CALL #S
Like JMPRET, but assembler handles details Result = 0 -
1
4
010111 0001 1111 --------- --------- RET
Like JMP, but assembler handles details Result = 0 -
0
4
011000 000i 1111 ddddddddd sssssssss TEST D,S
AND S with D to affect flags only Result = 0 Parity of Result
0
4
011001 000i 1111 ddddddddd sssssssss TESTN D,S
AND !S into D to affect flags only Result = 0 Parity of Result
0
4
011000 001i 1111 ddddddddd sssssssss AND D,S
AND S into D Result = 0 Parity of Result
1
4
011001 001i 1111 ddddddddd sssssssss ANDN D,S
AND !S into D Result = 0 Parity of Result
1
4
011010 001i 1111 ddddddddd sssssssss OR D,S
OR S into D Result = 0 Parity of Result
1
4
011011 001i 1111 ddddddddd sssssssss XOR D,S
XOR S into D Result = 0 Parity of Result
1
4
011100 001i 1111 ddddddddd sssssssss MUXC D,S
Copy C to bits in D using S as mask Result = 0 Parity of Result
1
4
011101 001i 1111 ddddddddd sssssssss MUXNC D,S
Copy !C to bits in D using S as mask Result = 0 Parity of Result
1
4
011110 001i 1111 ddddddddd sssssssss MUXZ D,S
Copy Z to bits in D using S as mask Result = 0 Parity of Result
1
4
011111 001i 1111 ddddddddd sssssssss MUXNZ D,S
Copy !Z to bits in D using S as mask Result = 0 Parity of Result
1
4
100000 001i 1111 ddddddddd sssssssss ADD D,S
Add S into D Result = 0 Unsigned Carry
1
4
100001 001i 1111 ddddddddd sssssssss SUB D,S
Subtract S from D Result = 0 Unsigned Borrow
1
4
100001 000i 1111 ddddddddd sssssssss CMP D,S
Compare D to S D = S Unsigned Borrow
0
4
100010 001i 1111 ddddddddd sssssssss ADDABS D,S
Add absolute S into D Result = 0 Unsigned Carry
1
1
4
100011 001i 1111 ddddddddd sssssssss SUBABS D,S
Subtract absolute S from D Result = 0 Unsigned Borrow
2
1
4
100100 001i 1111 ddddddddd sssssssss SUMC D,S
Sum either –S if C or S if !C into D Result = 0 Signed Overflow
1
4
100101 001i 1111 ddddddddd sssssssss SUMNC D,S
Sum either S if C or –S if !C into D Result = 0 Signed Overflow
1
4
100110 001i 1111 ddddddddd sssssssss SUMZ D,S
Sum either –S if Z or S if !Z into D Result = 0 Signed Overflow
1
4
100111 001i 1111 ddddddddd sssssssss SUMNZ D,S
Sum either S if Z or –S if !Z into D Result = 0 Signed Overflow
1
4
101000 001i 1111 ddddddddd sssssssss MOV D,S
Set D to S Result = 0 S[31]
1
4
101001 001i 1111 ddddddddd sssssssss NEG D,S
Set D to –S Result = 0 S[31]
1
4
101010 001i 1111 ddddddddd sssssssss ABS D,S
Set D to absolute S Result = 0 S[31]
1
4
101011 001i 1111 ddddddddd sssssssss ABSNEG D,S
Set D to –absolute S Result = 0 S[31]
1
4
101100 001i 1111 ddddddddd sssssssss NEGC D,S
Set D to either –S if C or S if !C Result = 0 S[31]
1
4
101101 001i 1111 ddddddddd sssssssss NEGNC D,S
Set D to either S if C or –S if !C Result = 0 S[31]
1
4
101110 001i 1111 ddddddddd sssssssss NEGZ D,S
Set D to either –S if Z or S if !Z Result = 0 S[31]
1
4
101111 001i 1111 ddddddddd sssssssss NEGNZ D,S
Set D to either S if Z or –S if !Z Result = 0 S[31]
1
4
110000 000i 1111 ddddddddd sssssssss CMPS D,S
Compare-signed D to S D = S Signed Borrow
0
4
110001 000i 1111 ddddddddd sssssssss CMPSX D,S
Compare-signed-extended D to S+C Z & (D = S+C) Signed Borrow
0
4
110010 001i 1111 ddddddddd sssssssss ADDX D,S
Add-extended S+C into D Z & (Result = 0) Unsigned Carry
1
4
110011 001i 1111 ddddddddd sssssssss SUBX D,S
Subtract-extended S+C from D Z & (Result = 0) Unsigned Borrow
1
4
110011 000i 1111 ddddddddd sssssssss CMPX D,S
Compare-extended D to S+C Z & (D = S+C) Unsigned Borrow
0
4
110100 001i 1111 ddddddddd sssssssss ADDS D,S
Add-signed S into D Result = 0 Signed Overflow
1
4
110101 001i 1111 ddddddddd sssssssss SUBS D,S
Subtract-signed S from D Result = 0 Signed Overflow
1
4
110110 001i 1111 ddddddddd sssssssss ADDSX D,S
Add-signed-extended S+C into D Z & (Result = 0) Signed Overflow
1
4
110111 001i 1111 ddddddddd sssssssss SUBSX D,S
Subtract-signed-extended S+C from D Z & (Result = 0) Signed Overflow
1
4
111000 001i 1111 ddddddddd sssssssss CMPSUB D,S
Subtract S from D if D => S D = S Unsigned (D => S)
1
4
111001 001i 1111 ddddddddd sssssssss DJNZ D,S
Dec D, jump if not zero to S (no jump = 8
clocks)
Result = 0 Unsigned Borrow
1
4 or 8
111010 000i 1111 ddddddddd sssssssss TJNZ D,S
Test D, jump if not zero to S (no jump = 8
clocks)
Result = 0 0
0
4 or 8
111011 000i 1111 ddddddddd sssssssss TJZ D,S
Test D, jump if zero to S (no jump = 8 clocks) Result = 0 0
0
4 or 8
111100 000i 1111 ddddddddd sssssssss WAITPEQ D,S
Wait for pins equal - (INA & S) = D - -
0
5+
111101 000i 1111 ddddddddd sssssssss WAITPNE D,S
Wait for pins not equal - (INA & S) != D - -
0
5+
111110 001i 1111 ddddddddd sssssssss WAITCNT D,S
Wait for CNT = D, then add S into D - Unsigned Carry
1
5+
111111 000i 1111 ddddddddd sssssssss WAITVID D,S
Wait for video peripheral to grab D and S - -
0
5+
------ ---- 0000 --------- --------- NOP
No operation, just elapses 4 clocks - -
-
4
* See Hub, section 4.4 on page 7.
1. ADDABS C out: If S is negative, C = the inverse of unsigned borrow (for D-S).
2. SUBABS C out: If S is negative, C = the inverse of unsigned carry (for D+S).