2.3 Instruction Set Summary Tables

Table 2-3. Move Instructions
Assembled SyntaxDescriptionWordsCycles
EXCH Wns,WndSwap Wns with Wnd12
MOV Ws, WdMove Ws to Wd0.5/11
MOV.l lit32,WndMove 32-bit unsigned literal to Wnd22
MOV.sl lit24,WndMove 24-bit unsigned literal to Wnd; 0 extend to 32-bits11
MOV.w lit16,WndMove 16-bit unsigned literal to Wnd; 0 extend to 32-bits11
MOV.bz lit8,WndMove 8-bit unsigned literal to Wnd; 0 extend to 32-bits11
MOV.l [W15-lit7], Wnd

[W14+slit7], Wnd

Move from system stack with literal offset to Wnd using SP or FP0.51
MOV.l Wns, [W15-lit7] Wns, [W14+slit7] Move from Wns to system stack with literal off-set using SP or FP0.51
MOV.l f,WndMove f to Wnd (Word or Long Word)(f < ~1MB)11
MOV.b f,WndMove f to Wnd (Byte)11
MOV.l Wns,fMove Wns to f (Word or Long Word)(f < ~1MB)11
MOV.w Wns,fMove Wns to f (Word or Long Word)(f > ~ 1MB)22
MOV.b Wns,fMove Wns to f (Byte)11
MOV [Wns+Slit12],WndMove [Wns+Slit12] to Wnd11
MOV Wns,[Wnd+Slit12]Move Wns to [Wnd+Slit12]11
MOVIF.l CC, Wb, Wns, Wd

If CC == True

Move W1 to [W15++]

Else Move W2 to [W15++]

where, CC -> Z, N, C, OV, GT, LT, GTU

11
MOVR.l Move Ws to Wd with destination Bit Reversed addressing
MOVS.l slit16, WdMove signed extended 16-bit literal to Wd11
MOVS.b slit8, WndMove 8-bit literal to Wd; no extension.11
SWAP WnWn = Word or byte swap Wn11
TST fTest f11
TST f,WndTest f and move f to Wnd11
Table 2-4. Math Instructions
Assembled SyntaxDescriptionWordsCycles
ADD f,Wnf = f + Wn11
ADD f,Wn,WnWn = f + Wn11
ADD.l lit5,WnWn = Wn + lit50.51
ADD lit16,WnWn = Wn + lit1611
ADD Wb,Ws,WdWd = Wb + Ws0.5/11
ADD Wb,lit7,WdWd = Wb + lit7(literal zero-extended)11
ADDC f,Wnf = f + Wn + (C)11
ADDC f,Wn,WnWn = f + Wn + (C)11
ADDC lit16,WnWn = Wn + lit16 + (C)11
ADDC Wb,Ws,WdWd = Wb + Ws + (C)0.5/11
ADDC Wb,lit7,WdWd = Wb + lit7 + (C)(literal zero-extended)11
DEC ff = f -111
DEC f,WdW5 = f -111
DEC Ws,WdWd = Ws - 111
DEC2 ff = f -211
DEC2 f,WdW5 = f -211
DEC2 Ws,WdWd = Ws - 211
DIVF Wm/WnInterruptible Signed 16/16 or 32/16 Fractional Divide11
DIVFL Wm/WnInterruptible Signed 32/32 Fractional Divide11
DIVS.w Wm/WnInterruptible Signed 16/16-bit Integer Divide11
DIVS.l Wm/WnInterruptible Signed 32/16-bit Integer Divide11
DIVSL Wm/WnInterruptible Signed 32/32 Integer Divide11
DIVU.w Wm/WnInterruptible Unsigned 16/16-bit Integer Divide11
DIVU.l Wm/WnInterruptible Unsigned 32/16-bit Integer Divide11
DIVUL Wm/WnInterruptible Unsigned 32/32 Integer Divide11
FLIM Wb, WsForce Data (Upper and Lower) Range Limit without Limit Excess Result11
FLIM Wb, Ws, WdForce Data (Upper and Lower) Range Limit with Limit Excess Flag (Wd=-1)12
FLIM.V Wb, Ws, WdForce Data (Upper and Lower) Range Limit with Limit Excess Result12
INC ff = f + 111
INC f,WdW5 = f + 111
INC Ws,WdWd = Ws + 111
INC2 ff = f + 211
INC2 f,WdW5 = f + 211
INC2 Ws,WdWd = Ws +211
MULSS Wb,Ws,Wnd{Wd}=signed(Wb) * signed(Ws)0.5/11
MULSU Wb,Ws,Wnd{Wd}=signed(Wb) * unsigned(Ws)0.5/11
MULUS Wb,Ws,Wnd{Wd}=unsigned(Wb) * signed(Ws)0.5/11
MULUU Wb,Ws,Wnd{Wd}=unsigned(Wb) * unsigned(Ws)0.5/11
MULSU Wb,lit8,Wnd{Wd}=signed(Wb) * unsigned(lit8)11
MULUU Wb,lit8,Wnd{Wd}=unsigned(Wb) * unsigned(lit8)11
MULSS Wb,slit8,Wnd{Wd}=signed(Wb) * signed(slit8)11
MULUS Wb,slit8,Wnd{Wd}=unsigned(Wb) * signed(slit8)11
MUL f, WnW2 = f * Wn11
SE Ws,WndWd = sign-extended Ws0.5/11
SUB f,Wnf = f - Wn11
SUB f,Wn,WnWn = f - Wn11
SUB.l lit5,WnWn = Wn - lit50.51
SUB lit16,WnWn = Wn - lit1611
SUB Wb,Ws,WdWd = Wb - Ws0.5/11
SUB Ws,lit7,WdWd = Ws - lit7 (literal zero-extended)11
SUBB f,Wnf = f - Wn - (C)11
SUBB f,Wn,WnWn = f - Wn - (C)11
SUBB lit16,WnWn = Wn - lit16 - (C)11
SUBB Wb,Ws,WdWd = Wb - Ws - (C)0.5/11
SUBB Ws,lit7,WdWd = Ws - lit7 - (literal zero-extended)11
SUBR f,Wnf = Wn - f11
SUBR f,Wn,WnWn = Wn - f11
SUBR Wb,Ws,WdWd = Ws - Wb0.5/11
SUBR Ws,lit7,WdWd = lit7 - Ws (literal zero-extended)0.5/11
SUBBR f,Wnf = Wn - f - (C)11
SUBBR f,Wn,WnWn = Wn -f - (C)11
SUBBR Wb,Ws,WdWd = Ws - Wb - (C)0.5/11
SUBBR Ws,lit7,WdWd = lit7 - Ws - (C) (literal zero-extended)11
ZE Ws,WndWd = Zero-extend Ws0.5/11
Table 2-5. Logic Instructions
Assembled SyntaxDescriptionWordsCycles
AND f,Wnf = f .AND. Wn11
AND f,Wn,WnW0 = f .AND. Wn11
AND lit16,WnWn = Wn .AND. lit1611
AND Wb,Ws,WdWd = Wb .AND. Ws0.5/11
AND Wb,lit7,WdWd = Wb .AND. Lit7 (literal zero-extended)11
AND1 Wb,lit7,WdWd = Wb .AND. Lit7 (literal zero-extended)11
CLR ff = 0x000011
CLR WdWd = 0x000011
COM ff = f11
COM f,WdWd = f11
COM Ws,WdWd = Ws0.5/11
IOR f,Wnf = f .IOR. Wn11
IOR f,Wn,WnWn = f .IOR. Wn11
IOR lit16,WnWn = Wn .IOR. lit1611
IOR Wb,Ws,WdWd = Wb .IOR. Ws0.5/11
IOR Wb,lit7,WdWd = Wb .IOR. lit711
NEG ff = f + 111
NEG f,WdWd = f + 111
NEG Ws,WdWd = Ws + 10.5/11
SETM ff = 0xFFFF11
SETM WdWd = 0xFFFF11
XOR f,Wnf = f .XOR. Wn11
XOR f,Wn,WnWn = f .XOR. Wn11
XOR lit16,WnWn = Wn .XOR. lit1611
XOR Wb,Ws,WdWd = Wb .XOR. Ws0.5/11
XOR Wb,lit7,WdWd = Wb .XOR. Lit7 (literal zero-extended)11
Table 2-6. Rotate/Shift Instructions
Assembled SyntaxDescriptionWordsCycles
ASR ff = Arithmetic Right Shift f by 111
ASR f,WnWn = Arithmetic Right Shift f by 111
ASR Ws,WdWd = Arithmetic Right Shift Ws by 10.5/11
ASR Ws,Wb,WdWnd = Arithmetic Right Shift Ws by Wb0.5/11
ASR Ws,lit5,WdWnd = Arithmetic Right Shift Ws by lit50.5/11
ASRM Ws, lit5, WndWnd = Arithmetic Right Shift Ws by lit5, then logically OR with next lsw12
ASRM Ws, Wb, WndWnd = Arithmetic Right Shift Ws by Wb, then logically OR with next lsw12
LSR ff = Logical Right Shift f by 111
LSR f,WdWd = Logical Right Shift f by 111
LSR Ws,WdWd = Logical Right Shift Ws by 10.5/11
LSR Ws,Wb,WdWnd = Logical Right Shift Ws by Wns0.5/11
LSR Ws,lit5,WdWnd = Logical Right Shift Ws by lit50.5/11
LSRM Ws, lit5, WndWnd = Logical Right Shift Ws by lit5, then logically OR with next lsw12
LSRM Ws, Wb, WndWnd = Logical Right Shift Ws by Wb, then logically OR with next lsw12
RLC ff = Rotate Left through Carry f11
RLC f,WdWd = Rotate Left through Carry f11
RLC Ws,WdWd = Rotate Left through Carry Ws0.5/11
RLNC ff = Rotate Left (No Carry) f11
RLNC f,WdWd = Rotate Left (No Carry) f11
RLNC Ws,WdWd = Rotate Left (No Carry) Ws0.5/11
RRC ff = Rotate Right through Carry f11
RRC f,WdWd = Rotate Right through Carry f11
RRC Ws,WdWd = Rotate Right through Carry Ws0.5/11
RRNC ff = Rotate Right (No Carry) f11
RRNC f,WdWd = Rotate Right (No Carry) f11
RRNC Ws,WdWd = Rotate Right (No Carry) Ws0.5/11
SL ff = Left Shift f by 111
SL f,WdWd = Left Shift f by 111
SL Ws,WdWd = Left Shift Ws by 10.5/11
SL Ws,Wb,WndWnd = Left Shift Wb by Wns0.5/11
SL Ws,lit5,WndWnd = Left Shift Ws by lit50.5/11
SLM Ws, lit5, WndWnd = Left Shift Wb by lit5, then logically OR with next msw12
SLM Ws, Wb, WndWnd = Left Shift Wb by Wb, then logically OR with next msw12
Table 2-7. Bit Instructions
Assembled SyntaxDescriptionWordsCycles
BCLR.b f,bit3Bit Clear f11
BCLR Ws,bit5Bit Clear Ws0.5/11
BFEXT bit5,wid6,Ws,WbBit Field Extract from Ws to Wb11
BFEXT bit5,wid6,f,WbBit Field Extract from f to Wb22
BFINS bit5,wid6,Wb,WsBit Field Insert from Wb into Ws11
BFINS bit5,wid6,Wb,fBit Field Insert from Wb into f22
BFINS bit5, wid6, lit16, WsBit Field Insert lit8 into Ws22
BSET.b f,bit3Bit Set f11
BSET Ws,bit5Bit Set Ws0.5/11
BSW.C Ws,WbWrite C or Z bit to Ws<Wb>11
BSW.Z Ws,WbWrite C or Z bit to Ws<Wb>0.5/11
BTG.b f,bit3Bit Toggle f11
BTG Ws,bit5Bit Toggle Ws0.5/11
BTST.b f,bit3Bit Test f11
BTST.C Ws,bit5Bit Test Ws to C0.5/11
BTST.Z Ws,bit5Bit Test Ws to Z11
BTST.C Ws,WbBit Test Ws<Wb> to C0.5/11
BTST.Z Ws,WbBit Test Ws<Wb> to Z11
BTSTS.b f,bit3Bit Test then Set f11
BTSTS.C Ws,bit5Bit Test Ws to C then Set0.5/11
BTSTS.Z Ws,bit5Bit Test Ws to Z then Set11
FBCL Ws,WndFind Bit Change from Left (MSb) Side11
FF1L Ws,WndFind First One from Left (MSb) Side11
FF1R Ws,WndFind First One from Right (LSb) Side11
Table 2-8. Compare/Skip and Compare/Branch Instructions
Assembled SyntaxDescriptionWordsCycles
CP f,WsCompare f with Ws11
CP Ws,lit13Compare Ws with lit13 (literal zero-extended)11
CP Wb,lit16Compare Wb with lit16 (literal zero-extended)11
CP Wb, WsCompare Wb with Ws0.5/11
CP0 fCompare f with 0x000011
CP0 WsCompare Ws with 0x0000 (substitute CPLS Ws ,#0)11
CPB f,WsCompare f with Ws, with borrow11
CP Wb,lit13Compare Wb with lit13, with borrow (literal zero-extended)11
CP Wb,lit16Compare Wb with lit16, with borrow (literal zero-extended)11
CPB Wb,WsCompare Borrow Wb with Ws0.5/11
DTB Wn,LabelDecrement Wn, then branch if not zero11(2/3)
Table 2-9. Program Flow Instructions
Assembled SyntaxDescriptionWordsCycles
BRA LabelBranch Unconditionally11
BRA WnComputed Branch12
BRA C,LabelBranch if Carry11(2/3)
BRA GE,LabelBranch if greater than or equal11(2/3)
BRA GEU,LabelBranch if unsigned greater than or equal11(2/3)
BRA GT,LabelBranch if greater than11(2/3)
BRA GTU,LabelBranch if unsigned greater than11(2/3)
BRA LE,LabelBranch if less than or equal11(2/3)
BRA LEU,LabelBranch if unsigned less than or equal11(2/3)
BRA LT,LabelBranch if less than11(2/3)
BRA LTU,LabelBranch if unsigned less than11(2/3)
BRA N,LabelBranch if Negative11(2/3)
BRA NC,LabelBranch if Not Carry11(2/3)
BRA NN,LabelBranch if Not Negative11(2/3)
BRA NOV,LabelBranch if Not Overflow11(2/3)
BRA NZ,LabelBranch if Not Zero11(2/3)
BRA Z,LabelBranch if Zero11(2/3)
BREAKStop user code execution0.5/11
CALL LabelCall subroutine (label < ~ 16MB)11
CALL WnsCall indirect subroutine at address [W11]12
GOTO LabelGoto address (address < ~ 16MB)11
GOTO WnGo to indirect address at [W11]12
RCALL LabelRelative Call11
RCALL WnsComputed Call12
REPEAT lit15Repeat Next Instruction lit15+1 times11
REPEAT lit5Repeat Next Instruction lit5+1 times0.51
REPEAT WnRepeat Next Instruction (Wn)+1 times11
RETFIE Return from interrupt enable0.54
RETLW lit16,WnReturn from Subroutine with literal in Wn13
RETURNReturn from Subroutine0.53
Table 2-10. Shadow/Stack/Context Instructions
Assembled SyntaxDescriptionWordsCycles
BOOTSWPSwap Active and Inactive address space0.52
CTXTSWP lit3Swap to CPU register context #20.52
CTXTSWP WnSwap to CPU register context defined in Wn[2:0]12
LNK lit16Link frame pointer11
LNK lit7Link frame pointer (literal < 128)0.51
POP fPop f from top of stack (TOS)11
POP {[--Ws],} WndPop Wnd Register from system stack.0.51
POP FdPop Fd Register from system stack.0.51
PUSH fPush f to top of stack (TOS)11
PUSH Wns, {[Wd++]}Push Wns Register to system stack0.51
PUSH FsPush Fs Register to system stack0.51
ULNKUnlink frame pointer0.51
Table 2-11. Control Instructions
Assembled SyntaxDescriptionWordsCycles
CLRWDTClear Watchdog Timer0.51
DISICTL lit3 {,Wd}Disable interrupts at IPL <= lit3 Optionally save prior IPL threshold to Wd11
DISICTL Wns {,Wd}Disable interrupts at IPL <= Wns[2:0] Optionally save prior IPL threshold to Wd11
NEOPNone executable NOP (16-bit instruction pad)0.50
NOPNo Operation11
NOPRNo Operation11
PWRSAV modeGo into standby mode0.52
RESETSoftware device RESET11
Table 2-12. DSP Instructions
Assembled SyntaxDescriptionWordsCycles
ADD AAdd Accumulators0.51
ADD Ws,Slit6, ASigned Add to Accumulator11
BRA OA,LabelBranch if accumulator A overflow11(2/3)
BRA OB,LabelBranch if accumulator B overflow11(2/3)
BRA OV,LabelBranch if Overflow11(2/3)
BRA SA,LabelBranch if accumulator A saturated11(2/3)
BRA SB,LabelBranch if accumulator B saturated11(2/3)
CLR AClear Accumulator0.51
ED Wx, Wy, A, AWBEuclidean Distance12
EDAC Wx, Wy, A, AWBEuclidean Distance Accumulate12
LAC Ws,Slit6, ALoad Accumulator (16/32-bit), literal shift11
LLAC.l Ws Slit6, ALoad Lower (LS-word of) Accumulator (32-bit), literal shift11
LUAC.l Ws, Slit6, ALoad Upper (LS-byte) of Accumulator (32-bit), literal shift11
MAC Wx, Wy, A, AWBMultiply and Accumulate11
MAX Wb, WsForce Data Maximum Range Limit11
MAX AForce Data Maximum Range Limit0.51
MAX.V A, WdForce Data Maximum Range Limit with Result12
MIN Wb, WsForce Data Minimum Range Limit11
MIN AForce Data Minimum Range Limit0.51
MIN.V A, WdForce Data Minimum Range Limit with Result12
MULISS Wb,Ws,AInteger: Acc(A or B) = signed(Wb) * signed(Ws)11
MULFSS Wb,Ws,AFractional: Acc(A or B) = signed(Wb) * signed(Ws)11
MULISU Wb,Ws,AInteger: Acc(A or B) = signed(Wb) * unsigned(Ws)11
MULFSU Wb,Ws,AFractional: Acc(A or B) = signed(Wb) * unsigned(Ws)11
MULIUS Wb,Ws,AInteger: Acc(A or B) = unsigned(Wb) * signed(Ws)11
MULFUS Wb,Ws,AFractional: Acc(A or B) = unsigned(Wb) * signed(Ws)11
MULIUU Wb,Ws,AInteger: Acc(A or B) = unsigned(Wb) * unsigned(Ws)11
MULFUU Wb,Ws,AFractional: Acc(A or B) = unsigned(Wb) * unsigned(Ws)11
MULISS Wb,slit8,AInteger: Acc(A or B) = signed(Wb) * signed(slit8)11
MULFSS Wb,slit8,AInteger: Acc(A or B) = signed(Wb) * signed(slit8)11
MULISU Wb,lit8,AInteger: Acc(A or B) = signed(Wb) * unsigned(lit8)11
MULFSU Wb,lit8,AInteger: Acc(A or B) = signed(Wb) * unsigned(lit8)11
MULIUS Wb,slit8,AInteger: Acc(A or B) = signed(Wb) * signed(slit8)11
MULFUS Wb,slit8,AInteger: Acc(A or B) = signed(Wb) * signed(slit8)11
MULIUU Wb,lit8,AInteger: Acc(A or B) = signed(Wb) * unsigned(lit8)11
MULFUU Wb,lit8,AInteger: Acc(A or B) = signed(Wb) * unsigned(lit8)11
MPY Wx, Wy, A, AWBMultiply Wm by Wn to Accumulator11
MPYN Wx, Wy, A, AWB-(Multiply Wm by Wn) to Accumulator11
MSC Wx, Wy, A, AWBMultiply and Subtract from Accumulator11
NEG ANegate Accumulator0.51
NORM A, WdNormalize Accumulator11
SAC A,Slit6, WdStore Accumulator (16/32-bit)11
SACR A,Slit6,WdStore Rounded Accumulator (16/32-bit), literal shift11
SACR A,Ws,WdStore Rounded Accumulator (16/32-bit), Wb shift11
SLAC.l A,Slit6,WdStore Lower (LS-Word of) Accumulator (32-bit), literal shift11
SUAC.l A,Slit6,WdStore sign extended Upper (MS-Byte of) Accumulator (32-bit), literal shift11
SFTAC A,WnArithmetic Shift by (Wn) Accumulator11
SFTAC A,Slit7Arithmetic Shift by Slit7 Accumulator11
SQR Wx, A, AWBSquare to Accumulator11
SQRAC Wx, A, AWBSquare and Accumulate11
SQRN Wx, A, AWBNegated Square to Accumulator11
SQRSC Wx, A, AWBSquare and Subtract from Accumulator11
SUB ASubtract Accumulators0.51
SUB Ws,Slit6, ASigned Subtract from Accumulator11
Table 2-13. FPU Instructions
Assembled SyntaxDescriptionWordsCycles
ABS Fs, FdAbsolute value of Fs11
ADD Fb, Fs, FdFd = Fb + Fs 12
AND lit16, FSRFSR = FSR AND lit1611
AND lit16, FCRFCR = FCR AND lit1611
AND lit16, FEARFEAR = FEAR AND lit1611
COS Fs , FdFd = COS(Fs)14
CPQ Fb, FsCompare Fb with Fs, Quiet Signaling11
CPS Fb, FsCompare Fb with Fs, Signaling11
DI2F Fs, FdConvert Double Word (64-bit) Integer to Floating-Point, Fs (integer) -->Fd (float)12
DIV Fb, Fs, FdSigned Floating-Point Divide, Fd = Fb/Fs111/32
FBRA EQ,LabelFloating Point Branch if Equal11(2/3)
FBRA NE,LabelFloating Point Branch if Not Equal11(2/3)
FBRA GT,LabelFloating Point Branch if Greater Than11(2/3)
FBRA GE,LabelFloating Point Branch if Greater Than or Equal11(2/3)
FBRA LT,LabelFloating Point Branch if Less Than11(2/3)
FBRA LE,LabelFloating Point Branch if Less Than or Equal11(2/3)
FBRA OR,LabelFloating Point Branch if Ordered11(2/3)
FBRA UNE,LabelFloating Point Branch if Unordered or Not Equal11(2/3)
FBRA UEQ,LabelFloating Point Branch if Unordered or Equal11(2/3)
FBRA ULE,LabelFloating Point Branch if Unordered or Less Than or Equal11(2/3)
FBRA ULT,LabelFloating Point Branch if Unordered or Less Than11(2/3)
FBRA UGE,LabelFloating Point Branch if Unordered or Greater Than or Equal11(2/3)
FBRA UGT,LabelFloating Point Branch if Unordered or Greater Than11(2/3)
FBRA UN,LabelFloating Point Branch if Unordered11(2/3)
FLIM Fb, Fs, Fd Force Signed Data Limit, If Fd > Fs Then Fd = Fs If Fd < Fb then Fd = Fb11
F2DI Fs, FdConvert Floating-Point Fs to Double Word (64-bit) Integer,Fs (float)--> Fd (integer)11/2
F2LI Fs, FdConvert Floating-Point Fs to Long Word (32-bit) Integer,Fs (float)-->Fd (integer)11/2
IOR lit16, FSRInclusive OR FSR, FSR = FSR .IOR. lit1611
IOR lit16, FCRInclusive OR FCR, FCR = FCR .IOR. Lit1611
IOR lit16, FEARInclusive OR FEAR, FEAR = FEAR .IOR. Lit1611
LI2F Fs, FdConvert Long Word (32-bit) Integer to Floating-Point,Fs (integer)-->Fd (float)11
MAC Fb, Fs, FdFloating-Point Signed Multiply and Accumulate,Fd = Fd +(Fb * Fs) 13/4
MAX Fb, Fs, FdSelect the Signed Maximum of Fb and Fs {IEEE 754-2019 maximum(x,y)}, if Fs >= Fb then Fd = Fs Else Fd= Fb11
MAXNM Fb, Fs, FdSelect the Signed Maximum of Fb and Fs {IEEE 754-2019 maxmumNumber(x,y)},, if Fs >= Fb then Fd = Fs Else Fd= Fb11
MIN Fb, Fs, FdSelect the Signed Minimum of Fb and Fs {IEEE 754-2019 minimum(x,y)}, if Fs =< Fb then Fd = Fs Else Fd= Fb11
MINNM Fb, Fs, FdSelect the Signed Minimum of Fb and Fs [minmumNumber()], if Fs =< Fb then Fd = Fs Else Fd= Fb11
MOV.l Fs, WdMove coprocessor register to Wd0.5/11
MOV.l Ws, FdMove Ws to coprocessor register0.5/11
MOV.l lit32,FdMove 32-bit unsigned literal to coprocessor register22
MOV Fs,[Wnd+Slit12]Move Fs to [Wnd+Slit12]11
MOV [Wns+Slit12],FdMove [Wns+Slit12] to Fd11
MOV Fs, FdMove Fs to Fd11
MOV index, FdFd = Constant table (index) Fd11
MUL Fb, Fs, Fd Fd = Fb * Fs13
NEG Fs, FdFd = -Fs11
SIN Fs, FdFd = SIN(Fs)14
SQRT Fs, FdFd = √Fs110/13
SUB Fb, Fs, Fd Fd= Fb- Fs12
TST FsTest Fs11