
Example
add r6, r7, r8
Description
Calculates the sum of rA and rB. Stores the result in rC. Used
for both signed and unsigned addition.
Usage
Carry Detection (unsigned operands):
Following an add operation, a carry out of the MSB can be
detected by checking whether the unsigned sum is less than one
of the unsigned operands. The carry bit can be written to a
register, or a conditional branch can be taken based on the
carry condition. The following code shows both cases:
add rC, rA, rB
cmpltu rD, rC, rA
add rC, rA, rB
bltu rC, rA, label
# The original add operation
# rD is written with the carry bit
# The original add operation
# Branch if carry generated
Overflow Detection (signed operands):
An overflow is detected when two positives are added and the
sum is negative, or when two negatives are added and the sum
is positive. The overflow condition can control a conditional
branch, as shown in the following code:
add rC, rA, rB
xor rD, rC, rA
xor rE, rC, rB
and rD, rD, rE
blt rD, r0,label
# The original add operation
# Compare signs of sum and rA
# Compare signs of sum and rB
# Combine comparisons
# Branch if overflow occurred
Exceptions
None
Instruction Type
R
NII51017
2015.04.02
add
8-7
Instruction Set Reference
Altera Corporation
Send Feedback
Commenti su questo manuale