Specifications

Table Of Contents
8–96 Altera Corporation
Nios II Processor Reference Handbook October 2007
sub
sub
subtract
Operation:
rC
rA – rB
Assembler Syntax:
sub rC, rA, rB
Example:
sub r6, r7, r8
Description: Subtract rB from rA and store the result in rC.
Usage: Carry Detection (unsigned operands):
The carry bit indicates an unsigned overflow. Before or after a
sub operation, a carry
out of the MSB can be detected by checking whether the first operand is less than
the second operand. The carry bit can be written to a register, or a conditional branch
can be taken based on the carry condition. Both cases are shown below.
sub rC, rA, rB
cmpltu rD, rA, rB
sub rC, rA, rB
bltu rA, rB, label
; The original sub operation (optional)
; rD is written with the carry bit
; The original sub operation (optional)
; Branch if carry was generated
Overflow Detection (signed operands):
Detect overflow of signed subtraction by comparing the sign of the difference that is
written to rC with the signs of the operands. If rA and rB have different signs, and the
sign of rC is different than the sign of rA, an overflow occurred. The overflow condition
can control a conditional branch, as shown below.
sub rC, rA, rB
xor rD, rA, rB
xor rE, rA, rC
and rD, rD, rE
blt rD, r0, label
; The original sub operation
; Compare signs of rA and rB
; Compare signs of rA and rC
; Combine comparisons
; Branch if overflow occurred
Instruction Type: R
Instruction Fields: A = Register index of operand rA
B = Register index of operand rB
C = Register index of operand rC
313029282726252423222120191817161514131211109876543210
ABC0x3900x3a