Altera Nios II User Manual page 276

Hide thumbs Also See for Nios II:
Table of Contents

Advertisement

8–96
sub
Operation:
Assembler Syntax:
Example:
Description:
Usage:
Exceptions:
Instruction Type:
Instruction Fields:
31
30
29
28
27
26
25
A
Nios II Processor Reference Handbook
rC ← rA – rB
sub rC, rA, rB
sub r6, r7, r8
Subtract rB from rA and store the result in rC.
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 in the following code:
sub rC, rA, rB
cmpltu rD, rA, rB
sub rC, rA, rB
bltu rA, rB, label
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 in the following code:
sub rC, rA, rB
xor rD, rA, rB
xor rE, rA, rC
and rD, rD, rE
blt rD, r0, label
None
R
A = Register index of operand rA
B = Register index of operand rB
C = Register index of operand rC
24
23
22
21
20
19
18
17
B
C
# The original sub operation (optional)
# rD is written with the carry bit
# The original sub operation (optional)
# Branch if carry generated
# The original sub operation
# Compare signs of rA and rB
# Compare signs of rA and rC
# Combine comparisons
# Branch if overflow occurred
16
15
14
13
12
11
10
9
0x39
Chapter 8: Instruction Set Reference
Instruction Set Reference
subtract
8
7
6
5
4
3
2
1
0
0x3a
February 2014 Altera Corporation
0

Advertisement

Table of Contents
loading

Table of Contents