Clear Task-Switched Flag in CR0

Encoding

EncodingOperand
zoNone

Description

The CLTS instruction clears (resets) the task-switched flag in CR0.

CR0.TS is a flag that is set whenever a task switch occurs, and is used to synchronize the saving of the FPU context in multitasking environments.

This instruction can only be executed when CPL is 0 (i.e. ring 0). Attempts to execute this instruction in less privileged rings will cause a #UD exception to be raised.

Operation

public void CLTS()
{
    EFLAGS.TS = 0;
}

Flags Affected

None.

Exceptions

Real-Address Mode

#UD
  • If in Real Mode.

Virtual-8086 Mode

#UD
  • If in Virtual-8086 Mode.

Protected Mode

#UD
  • If the LOCK prefix is used.
#GP(0)
  • If CPL is greater than 0.

Compatibility Mode

#UD
  • If the LOCK prefix is used.
#GP(0)
  • If CPL is greater than 0.

Long Mode

#UD
  • If the LOCK prefix is used.
#GP(0)
  • If CPL is greater than 0.