Specifications

Table Of Contents
8–10 Altera Corporation
Nios II Processor Reference Handbook October 2007
addi
addi
add immediate
Operation:
rB
rA + σ (IMM16)
Assembler Syntax:
addi rB, rA, IMM16
Example:
addi r6, r7, -100
Description: Sign-extends the 16-bit immediate value and adds it to the value of rA. Stores the sum
in rB.
Usage: Carry Detection (unsigned operands):
Following an
addi 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. Both cases are shown below.
addi rB, rA, IMM16
cmpltu rD, rB, rA
addi rB, rA, IMM16
bltu rB, rA, label
; The original add operation
; rD is written with the carry bit
; The original add operation
; Branch if carry was 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 below.
addi rB, rA, IMM16
xor rC, rB, rA
xorhi rD, rB, IMM16
and rC, rC, rD
blt rC, r0,label
; The original add operation
; Compare signs of sum and rA
; Compare signs of sum and IMM16
; Combine comparisons
; Branch if overflow occurred
Instruction Type: I
Instruction Fields: A = Register index of operand rA
B = Register index of operand rB
IMM16 = 16-bit signed immediate value
313029282726252423222120191817161514131211109876543210
A B IMM16 0x04