difference between reserved bits and undefined bist in intel 8086 processor's flag register-Collection of common programming errors

In the 16-bit flags register of the intel 8086 processor there are 9 flags (each 1-bit, bit numbers 0,2,4,6,7,8,9,10,11 which we know them as ZF,OF,…) the bit numbers 1,3,5 are marked as”U” (undefined) and the bit numbers 12,13,14,15 are marked as “R” (reserved).

My question is that what is the difference between reserved bits and the undefined bits in the intel 8086 processor?

Thanks

  1. Reserved bits may be defined. Undefined bits never are. If a bit is “reserved”, it is reserved for some specific purpose. If it’s “undefined”, then at that point no purpose for it was decided.

    For example, if a bit sets a particular testing mode that users are never supposed to enable, the bit would be reserved but it wouldn’t be undefined.

  2. Reserved almost always means “Reserved for future use”, to allow Intel to add extensions in later CPUs.

    None of the flags are “undefined” – they are all either defined or reserved. What you’ve probably seen is a table describing how each instruction effects different flags, where the effect of a specific instruction on a specific flag may be undefined (even though that specific flag is not an undefined flag). An example of this is the IDIV instruction which leaves most of the defined flags (overflow, carry, etc) in an undefined state.

Originally posted 2013-11-10 00:15:24.