ABS
Instruction: Get the absolute value of a number.
ABS AValue, < # > SValue
Result: Absolute SValue is stored in AValue.
- AValue (d-field) is the register in which to write the absolute of SValue.
- SValue (s-field) is a register or a 9-bit literal whose absolute value will be written to AValue.
Opcode Table:
–INSTR– ZCRI –CON– –DEST– –SRC– | Z Result | C Result | Result | Clocks |
101010 001i 1111 ddddddddd sssssssss | Result = 0 | S[31] | Written | 4 |
Concise Truth Table:
In | Out | ||||||
Destination | Source | Z | C | Effects | Destination | Z | C |
$----_----; - | $0000_0001; 1 | - | - | wz wc | $0000_0001; 1 | 0 | 0 |
$----_----; - | $0000_0000; 0 | - | - | wz wc | $0000_0000; 0 | 1 | 0 |
$----_----; - | $FFFF_FFFF; -1 | - | - | wz wc | $0000_0001; 1 | 0 | 1 |
$----_----; - | $7FFF_FFFF; 2,147,483,647 | - | - | wz wc | $7FFF_FFFF; 2,147,483,647 | 0 | 0 |
$----_----; - | $8000_0000; -2,147,483,648 | - | - | wz wc | $8000_0000; -2,147,483,6481 | 0 | 1 |
$----_----; - | $8000_0001; -2,147,483,647 | - | - | wz wc | $7FFF_FFFF; 2,147,483,647 | 0 | 1 |
1 The smallest negative number (-2,147,483,648) has no corresponding positive value in 32-bit two's-complement math.
Explanation
ABS takes the absolute value of SValue and writes the result into AValue.
If the WZ effect is specified, the Z flag is set (1) if SValue is zero. If the WC effect is specified, the C flag is set (1) if SValue is negative, or cleared (0) if SValue is positive. The result is written to AValue unless the NR effect is specified.
Literal SValues are zero-extended, so ABS is really best used with register SValues.
Unless otherwise noted, content on this site is licensed under the
Creative Commons Attribution-ShareAlike 4.0 International License.