subfze
Subtract from Zero Extended - 7C 00 00 53
subfze

Instruction Syntax

Mnemonic Format Flags
subfze rD,rA OE = 0, Rc = 0
subfze. rD,rA OE = 0, Rc = 1
subfzeo rD,rA OE = 1, Rc = 0
subfzeo. rD,rA OE = 1, Rc = 1

Instruction Encoding

0
1
1
1
1
1
D
D
D
D
D
A
A
A
A
A
0
0
0
0
0
OE
0
1
0
1
0
0
0
0
1
1
Rc

Field Bits Description
Primary Opcode 0-5 011111 (0x1F)
rD 6-10 Destination register
rA 11-15 Source register
Reserved 16-20 00000
OE 21 Overflow Exception
XO 22-29 43 (Extended opcode)
Reserved 30 1
Rc 31 Record Condition Register

Operation

rD ← 0 - (rA) + XER[CA]

The value in rA is subtracted from 0, the carry bit is added, and the result is placed into rD. The carry bit is updated based on the result.

Note: The subfze instruction performs subtraction from zero with extended carry. If OE = 1, overflow exceptions are enabled. If Rc = 1, the condition register is updated.

Affected Registers

Condition Register (CR0 field)

(if Rc = 1)

Note: CR0 field may not reflect the infinitely precise result if overflow occurs (see XER below).

XER (Exception Register)

(if OE = 1)

For more information on condition codes see Section 2.1.3, "Condition Register," and Section 2.1.5, "XER Register," in the PowerPC Microprocessor Family: The Programming Environments manual.

Examples

Basic Subtraction from Zero

subfze r3, r1        # r3 = 0 - r1 + CA
subfze. r3, r1       # Same as above, but also sets condition register

Simple Arithmetic

# Subtract from zero with carry
lwz r4, 0(r10)     # Load value
subfze r5, r4       # r5 = 0 - r4 + CA

Overflow Detection

subfzeo r3, r1       # Subtract from zero with overflow exception enabled
# If overflow occurs, an exception is raised

Related Instructions

subf, subfc, subfe, subfic, subfme

Back to Index