SpinAsm SOF: Difference between revisions

From PedalPCB Wiki
Jump to navigation Jump to search
Created page with "== SOF == {| class="wikitable" |+ !Mnemonic !Operation !Instruction coding |- |SOF |C * ACC + D |CCCCCCCCCCCCCCCCDDDDDDDDDDD01101 |} ====== Description ====== SOF will multiply the current value in ACC with C and will then add the constant D to the result. Please note the absence of an integer entry format for D. This is not by mistake but it should emphasize that D is not intended to become used for integer arithmetic. The reason for this instruction is that the 11 bit..."
 
No edit summary
Line 14: Line 14:
SOF will multiply the current value in ACC with C and will then add the constant D to the result. Please note the absence of an integer entry format for D. This is not by mistake but it should emphasize that D is not intended to become used for integer arithmetic. The reason for this instruction is that the 11 bit constant D would be placed into ACC left justified or in other words 13 bits shifted to the left. D is intended to offset ACC by a constant in the range from –1 to +0.9990234375.
SOF will multiply the current value in ACC with C and will then add the constant D to the result. Please note the absence of an integer entry format for D. This is not by mistake but it should emphasize that D is not intended to become used for integer arithmetic. The reason for this instruction is that the 11 bit constant D would be placed into ACC left justified or in other words 13 bits shifted to the left. D is intended to offset ACC by a constant in the range from –1 to +0.9990234375.
{| class="wikitable"
{| class="wikitable"
|+
|+Parameters
!Name
!Name
!Width
!Width

Revision as of 20:53, 6 January 2023

SOF

Mnemonic Operation Instruction coding
SOF C * ACC + D CCCCCCCCCCCCCCCCDDDDDDDDDDD01101
Description

SOF will multiply the current value in ACC with C and will then add the constant D to the result. Please note the absence of an integer entry format for D. This is not by mistake but it should emphasize that D is not intended to become used for integer arithmetic. The reason for this instruction is that the 11 bit constant D would be placed into ACC left justified or in other words 13 bits shifted to the left. D is intended to offset ACC by a constant in the range from –1 to +0.9990234375.

Parameters
Name Width Entry formats, range
C 16 Bit Real (S1.14)

Hex ($0000 ­ $FFFF) Symbolic

D 11 Bit Real(S.10)

Symbolic

Syntax

SOF C,D

Coding Example

<syntaxhighlight line="1"> Off EQU 1.0  ;

                               ; 
Halve way rectifier ­­­­­­­­

sof 0,0  ; Clear ACC rdax ADCL,1.0  ; Read from left ADC channel sof 1.0,Off  ; Subtract offset sof 1.0,Off  ; Add offset </syntaxhighlight>