Instructions

rsub

Arithmetic Reverse Subtract

 

 

rsub

rD, rA, rB

Subtract

 

rsubc

rD, rA, rB

Subtract with Carry

 

rsubk

rD, rA, rB

Subtract and Keep Carry

 

rsubkc

rD, rA, rB

Subtract with Carry and Keep Carry

R

0 0 0 K C 1

rD

rA

rB

0 0 0 0 0 0 0 0 0 0 0

0

6

11

16

21

31

Description

The contents of register rA is subtracted from the contents of register rB and the result is placed into register rD. Bit 3 of the instruction (labeled as K in the figure) is set to a one for the mnemonic rsubk. Bit 4 of the instruction (labeled as C in the figure) is set to a one for the mnemonic rsubc. Both bits are set to a one for the mnemonic rsubkc.

When an rsub instruction has bit 3 set (rsubk, rsubkc), the carry flag will Keep its previous value regardless of the outcome of the execution of the instruction. If bit 3 is cleared (rsub, rsubc), then the carry flag will be affected by the execution of the instruction.

When bit 4 of the instruction is set to a one (rsubc, rsubkc), the content of the carry flag (MSR[C]) affects the execution of the instruction. When bit 4 is cleared (rsub, rsubk), the content of the carry flag does not affect the execution of the instruction (providing a normal subtraction).

Pseudocode

if C = 0 then

(rD) (rB) + (rA) + 1 else

(rD) (rB) + (rA) + MSR[C] if K = 0 then

MSR[C] CarryOut

Registers Altered

rD

MSR[C]

Latency

1 cycle

Notes

In subtractions, Carry = (Borrow). When the Carry is set by a subtraction, it means that there is no Borrow, and when the Carry is cleared, it means that there is a Borrow.

MicroBlaze Processor Reference Guide

www.xilinx.com

127

UG081 (v6.0) June 1, 2006

1-800-255-7778

 

Page 127
Image 127
Xilinx EDK 8.2i manual Arithmetic Reverse Subtract Rsub, Rsubc, Rsubkc