|
Index |
Sub Index |
Name |
Data Type |
Acc. |
Pdo Map. |
NVM |
Value range |
Function brief |
|---|---|---|---|---|---|---|---|---|
|
0x2C01 |
0x01 |
Add constant to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM + constant |
|
0x2C01 |
0x02 |
Accumulator divide constant |
INT32 |
WO |
No |
No |
INT32 |
[W2:ACCUM] = [W2:ACCUM] / constant |
|
0x2C01 |
0x03 |
Xor constant to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM XOR constant |
|
0x2C01 |
0x04 |
Accumulator multiply constant |
INT32 |
WO |
No |
No |
INT32 |
[W2:ACCUM ]= [W2:ACCUM] * constant |
|
0x2C01 |
0x05 |
And constant to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM AND constant |
|
0x2C01 |
0x06 |
Or constant to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM OR constant |
|
0x2C01 |
0x07 |
Subtract constant from accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM - constant |
|
0x2C01 |
0x08 |
Shift left accumulator by constant |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM << constant |
|
0x2C01 |
0x09 |
Shift right accumulator by constant |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM >> constant |
|
0x2C01 |
0x0A |
Add register to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM + register |
|
0x2C01 |
0x0B |
Accumulator divide register |
INT32 |
WO |
No |
No |
INT32 |
[W2:ACCUM] = [W2:ACCUM] / register |
|
0x2C01 |
0x0C |
Xor register to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM XOR register |
|
0x2C01 |
0x0D |
Accumulator multiply register |
INT32 |
WO |
No |
No |
INT32 |
[W2:ACCUM] =[W2:ACCUM ]* register |
|
0x2C01 |
0x0E |
And register to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM AND register |
|
0x2C01 |
0x0F |
Or register to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM OR register |
|
0x2C01 |
0x10 |
Substract register from accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM - register |
|
0x2C01 |
0x11 |
Shift left accumulator by register |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM << register |
|
0x2C01 |
0x12 |
Shift right accumulator by register |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = ACCUM >> register |
|
0x2C01 |
0x13 |
Absolute accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = |ACCUM | |
|
0x2C01 |
0x14 |
Accumulator complement |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = NOT(ACCUM ) |
|
0x2C01 |
0x15 |
Write accumulator to register |
INT32 |
WO |
No |
No |
INT32 |
register = ACCUM |
|
0x2C01 |
0x16 |
Write register32 to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = register32 |
|
0x2C01 |
0x17 |
Write register16 to accumulator |
INT32 |
WO |
No |
No |
INT32 |
ACCUM = register16 |
This object provides access to a set of arithmetic operators that could be used with general purpose registers.
SubIndex description:
-
All arithmetic uses signed 32 bit values except multiplication and division that produce or use signed 64 bits values. A signed 64 bits value is stored in W2 and ACCUM (the upper 32 bits in W2 and the lower 32 bits in ACCUM)
-
Multiplication multiplies the 32 bits signed value in ACCUM by a signed 32 bits value (constant or register contents) with as result a 64 bits signed value in W2 and ACCUM.
-
Division divides the signed 64 bits value in W2 and ACCUM by a signed 32 bits value (constant or register contents) with as result a 64 bits signed value in W2 and ACCUM.
-
Logic operators (AND, OR, XOR, shift and complement) are bitwise operators.
-
Shift operations shift the contents of the accumulator in the indicated direction the given number of bits (constant of register contents). The new bits will be filled with zero.