You copied the Doc URL to your clipboard.

# NZCV, Condition Flags

The NZCV characteristics are:

## Attributes

NZCV is a 64-bit register.

## Field descriptions

The NZCV bit assignments are:

 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 RES0 N Z C V RES0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Reserved, RES0.

#### N, bit [31]

Negative condition flag. Set to 1 if the result of the last flag-setting instruction was negative.

#### Z, bit [30]

Zero condition flag. Set to 1 if the result of the last flag-setting instruction was zero, and to 0 otherwise. A result of zero often indicates an equal result from a comparison.

#### C, bit [29]

Carry condition flag. Set to 1 if the last flag-setting instruction resulted in a carry condition, for example an unsigned overflow on an addition.

#### V, bit [28]

Overflow condition flag. Set to 1 if the last flag-setting instruction resulted in an overflow condition, for example a signed overflow on an addition.

Reserved, RES0.

## Accessing the NZCV

Accesses to this register use the following encodings:

#### MRS <Xt>, NZCV

op0op1CRnCRmop2
0b110b0110b01000b00100b000
```if PSTATE.EL == EL0 then
return Zeros(32):PSTATE.<N,Z,C,V>:Zeros(28);
elsif PSTATE.EL == EL1 then
return Zeros(32):PSTATE.<N,Z,C,V>:Zeros(28);
elsif PSTATE.EL == EL2 then
return Zeros(32):PSTATE.<N,Z,C,V>:Zeros(28);
elsif PSTATE.EL == EL3 then
return Zeros(32):PSTATE.<N,Z,C,V>:Zeros(28);
```

#### MSR NZCV, <Xt>

op0op1CRnCRmop2
0b110b0110b01000b00100b000
```if PSTATE.EL == EL0 then
PSTATE.<N,Z,C,V> = X[t]<31:28>;
elsif PSTATE.EL == EL1 then
PSTATE.<N,Z,C,V> = X[t]<31:28>;
elsif PSTATE.EL == EL2 then
PSTATE.<N,Z,C,V> = X[t]<31:28>;
elsif PSTATE.EL == EL3 then
PSTATE.<N,Z,C,V> = X[t]<31:28>;
```