FV1Dev and SpinAsm SOF: Difference between pages
(Difference between pages)
Jump to navigation
Jump to search
(Created page with "Using the FV1Dev on Microsoft Windows Using the FV1Dev on Apple macOS Using the FV1Dev on Ubuntu") |
No edit summary |
||
Line 1: | Line 1: | ||
== 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 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 ====== | |||
{| class="wikitable" | |||
|+ | |||
!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> |
Latest revision as of 20:54, 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
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