Propeller Manual
Table Of Contents
- Preface
- Chapter 1 : Introducing the Propeller Chip
- Concept
- Package Types
- Pin Descriptions
- Specifications
- Hardware Connections
- Boot Up Procedure
- Run-Time Procedure
- Shutdown Procedure
- Block Diagram
- Shared Resources
- System Clock
- Cogs (processors)
- Hub
- I/O Pins
- System Counter
- CLK Register
- Locks
- Main Memory
- Main RAM
- Main ROM
- Character Definitions
- Log and Anti-Log Tables
- Sine Table
- Boot Loader and Spin Interpreter
- Chapter 2 : Spin Language Reference
- Structure of Propeller Objects/Spin
- Categorical Listing of Propeller Spin Language
- Spin Language Elements
- ABORT
- BYTE
- BYTEFILL
- BYTEMOVE
- CASE
- CHIPVER
- CLKFREQ
- _CLKFREQ
- CLKMODE
- _CLKMODE
- CLKSET
- CNT
- COGID
- COGINIT
- COGNEW
- COGSTOP
- CON
- CONSTANT
- Constants (pre-defined)
- CTRA, CTRB
- DAT
- DIRA, DIRB
- FILE
- FLOAT
- _FREE
- FRQA, FRQB
- IF
- IFNOT
- INA, INB
- LOCKCLR
- LOCKNEW
- LOCKRET
- LOCKSET
- LONG
- LONGFILL
- LONGMOVE
- LOOKDOWN, LOOKDOWNZ
- LOOKUP, LOOKUPZ
- NEXT
- OBJ
- Operators
- Expression Workspace
- Operator Attributes
- Unary / Binary
- Normal / Assignment
- Constant and/or Variable Expression
- Level of Precedence
- Intermediate Assignments
- Constant Assignment ‘=’
- Variable Assignment ‘:=’
- Add ‘+’, ‘+=’
- Positive ‘+’ (unary form of Add)
- Subtract ‘-’, ‘-=’
- Negate ‘-’ (unary form of Subtract)
- Decrement, pre- or post- ‘- -’
- Increment, pre- or post- ‘+ +’
- Multiply, Return Low ‘*’, ‘*=’
- Multiply, Return High ‘**’, ‘**=’
- Divide ‘/’, ‘/=’
- Modulus ‘//’, ‘//=’
- Limit Minimum ‘#>’, ‘#>=’
- Limit Maximum ‘<#’, ‘<#=’
- Square Root ‘^^’
- Absolute Value ‘||’
- Sign-Extend 7 or Post-Clear ‘~’
- Sign-Extend 15 or Post-Set ‘~~’
- Shift Arithmetic Right ‘~>’, ‘~>=’
- Random ‘?’
- Bitwise Decode ‘|<’
- Bitwise Encode ‘>|’
- Bitwise Shift Left ‘<<’, ‘<<=’
- Bitwise Shift Right ‘>>’, ‘>>=’
- Bitwise Rotate Left ‘<-’, ‘<-=’
- Bitwise Rotate Right ‘->’, ‘->=’
- Bitwise Reverse ‘><’, ‘><=’
- Bitwise AND ‘&’, ‘&=’
- Bitwise OR ‘|’, ‘|=’
- Bitwise XOR ‘^’, ‘^=’
- Bitwise NOT ‘!’
- Boolean AND ‘AND’, ‘AND=’
- Boolean OR ‘OR’, ‘OR=’
- Boolean NOT ‘NOT’
- Boolean Is Equal ‘==’, ‘===’
- Boolean Is Not Equal ‘<>’, ‘<>=’
- Boolean Is Less Than ‘<’, ‘<=’
- Boolean Is Greater Than ‘>’, ‘>=’
- Boolean Is Equal or Less ‘=<’, ‘=<=’
- Boolean Is Equal or Greater ‘=>’, ‘=>=’
- Symbol Address ‘@’
- Object Address Plus Symbol ‘@@’
- OUTA, OUTB
- PAR
- PHSA, PHSB
- PRI
- PUB
- QUIT
- REBOOT
- REPEAT
- RESULT
- RETURN
- ROUND
- SPR
- _STACK
- STRCOMP
- STRING
- STRSIZE
- Symbols
- TRUNC
- VAR
- VCFG
- VSCL
- WAITCNT
- WAITPEQ
- WAITPNE
- WAITVID
- WORD
- WORDFILL
- WORDMOVE
- _XINFREQ
- Chapter 3 : Assembly Language Reference
- The Structure of Propeller Assembly
- Categorical Listing of Propeller Assembly Language
- Assembly Language Elements
- ABS
- ABSNEG
- ADD
- ADDABS
- ADDS
- ADDSX
- ADDX
- AND
- ANDN
- CALL
- CLKSET
- CMP
- CMPS
- CMPSUB
- CMPSX
- CMPX
- CNT
- COGID
- COGINIT
- COGSTOP
- Conditions ( IF_x )
- CTRA, CTRB
- DIRA, DIRB
- DJNZ
- Effects ( WC, WZ, WR, NR )
- FIT
- FRQA, FRQB
- HUBOP
- IF_x (Conditions)
- INA, INB
- JMP
- JMPRET
- LOCKCLR
- LOCKNEW
- LOCKRET
- LOCKSET
- MAX
- MAXS
- MIN
- MINS
- MOV
- MOVD
- MOVI
- MOVS
- MUXC
- MUXNC
- MUXNZ
- MUXZ
- NEG
- NEGC
- NEGNC
- NEGNZ
- NEGZ
- NOP
- NR
- Operators
- OR
- ORG
- OUTA, OUTB
- PAR
- PHSA, PHSB
- RCL
- RCR
- RDBYTE
- RDLONG
- RDWORD
- Registers
- RES
- RET
- REV
- ROL
- ROR
- SAR
- SHL
- SHR
- SUB
- SUBABS
- SUBS
- SUBSX
- SUBX
- SUMC
- SUMNC
- SUMZ
- Symbols
- TEST
- TESTN
- TJNZ
- TJZ
- VCFG
- VSCL
- WAITCNT
- WAITPEQ
- WAITPNE
- WAITVID
- WC
- WR
- WRBYTE
- WRLONG
- WRWORD
- WZ
- XOR
- Appendix A: Reserved Word List
- Appendix B: Math Samples and Function Tables
- Index
Assembly Language Reference
Page 254 · Propeller Manual v1.1
Instruction -INSTR- ZCRI -CON- -DEST- -SRC- Z Result C Result Result Clocks
ABS D, S 101010 001i 1111 ddddddddd sssssssss
Result = 0 S[31] Written 4
ABSNEG D, S 101011 001i 1111 ddddddddd sssssssss
Result = 0 S[31] Written 4
ADD D, S 100000 001i 1111 ddddddddd sssssssss
D + S = 0 Unsigned Carry Written 4
ADDABS D, S 100010 001i 1111 ddddddddd sssssssss
D + |S| = 0 Unsigned Carry
3
Written 4
ADDS D, S 110100 001i 1111 ddddddddd sssssssss
D + S = 0 Signed Overflow Written 4
ADDSX D, S 110110 001i 1111 ddddddddd sssssssss
Z & (D+S+C = 0)
Signed Overflow Written 4
ADDX D, S 110010 001i 1111 ddddddddd sssssssss
Z & (D+S+C = 0)
Unsigned Carry Written 4
AND D, S 011000 001i 1111 ddddddddd sssssssss
Result = 0 Parity of Result Written 4
ANDN D, S 011001 001i 1111 ddddddddd sssssssss
Result = 0 Parity of Result Written 4
CALL #S 010111 0011 1111 ????????? sssssssss
Result = 0 --- Written 4
CLKSET D 000011 0001 1111 ddddddddd ------000
--- --- Not Written 7..22
1
CMP D, S 100001 000i 1111 ddddddddd sssssssss
D = S Unsigned (D < S) Not Written 4
CMPS D, S 110000 000i 1111 ddddddddd sssssssss
D = S Signed (D < S) Not Written 4
CMPSUB D, S 111000 001i 1111 ddddddddd sssssssss
D = S Unsigned (D => S) Written 4
CMPSX D, S 110001 000i 1111 ddddddddd sssssssss
Z & (D = S+C) Signed (D < S+C) Not Written 4
CMPX D, S 110011 000i 1111 ddddddddd sssssssss
Z & (D = S+C) Unsigned (D < S+C)
Not Written 4
COGID D 000011 0011 1111 ddddddddd ------001
ID = 0 0 Written 7..22
1
COGINIT D 000011 0001 1111 ddddddddd ------010
ID = 0 No Cog Free Not Written 7..22
1
COGSTOP D 000011 0001 1111 ddddddddd ------011
Stopped ID = 0 No Cog Free Not Written 7..22
1
DJNZ D, S 111001 001i 1111 ddddddddd sssssssss
Result = 0 Unsigned Borrow Written 4 or 8
2
HUBOP D, S 000011 000i 1111 ddddddddd sssssssss
Result = 0 --- Not Written 7..22
1
JMP S 010111 000i 1111 --------- sssssssss
Result = 0 --- Not Written 4
JMPRET D, S 010111 001i 1111 ddddddddd sssssssss
Result = 0 --- Written 4
LOCKCLR D 000011 0001 1111 ddddddddd ------111
ID = 0 Prior Lock State Not Written 7..22
1
LOCKNEW D 000011 0011 1111 ddddddddd ------100
ID = 0 No Lock Free Written 7..22
1
LOCKRET D 000011 0001 1111 ddddddddd ------101
ID = 0 No Lock Free Not Written 7..22
1
LOCKSET D 000011 0001 1111 ddddddddd ------110
ID = 0 Prior Lock State Not Written 7..22
1
MAX D, S 010011 001i 1111 ddddddddd sssssssss
S = 0 Unsigned (D < S) Written 4
MAXS D, S 010001 001i 1111 ddddddddd sssssssss
S = 0 Signed (D < S) Written 4
MIN D, S 010010 001i 1111 ddddddddd sssssssss
S = 0 Unsigned (D < S) Written 4
MINS D, S 010000 001i 1111 ddddddddd sssssssss
S = 0 Signed (D < S) Written 4
MOV D, S 101000 001i 1111 ddddddddd sssssssss
Result = 0 S[31] Written 4
MOVD D, S 010101 001i 1111 ddddddddd sssssssss
Result = 0 --- Written 4
MOVI D, S 010110 001i 1111 ddddddddd sssssssss
Result = 0 --- Written 4
MOVS D, S 010100 001i 1111 ddddddddd sssssssss
Result = 0 --- Written 4
MUXC D, S 011100 001i 1111 ddddddddd sssssssss
Result = 0 Parity of Result Written 4
MUXNC D, S 011101 001i 1111 ddddddddd sssssssss
Result = 0 Parity of Result Written 4
MUXNZ D, S 011111 001i 1111 ddddddddd sssssssss
Result = 0 Parity of Result Written 4
MUXZ D, S 011110 001i 1111 ddddddddd sssssssss
Result = 0 Parity of Result Written 4
NEG D, S 101001 001i 1111 ddddddddd sssssssss
Result = 0 S[31] Written 4