STMXCSR
Usage: STMXCSR dest Modifies flags: None
Stores the contents of the MXCSR control and status register to the 'dest' operand. The 'dest' operand is a 32-bit memory location. The reserved bits in the MXCSR register are stored as 0s.
Store Streaming SIMD Extension Control/Status
STMXCSR m32 ; 0F AE /3 [KATMAI,SSE]
STMXCSR stores the contents of the MXCSR control/status register to the specified memory location. MXCSR is used to enable masked/unmasked exception handling, to set rounding modes, to set flush-to-zero mode, and to view exception status flags. The reserved bits in the MXCSR register are stored as 0s.
For details of the MXCSR register, see the Intel processor docs.
See also LDMXCSR.
EXAMPLE:
stmxcsr label
STI
Usage: STI Modifies flags: IF
Sets the Interrupt Flag to 1, which enables recognition of all hardware interrupts. If an interrupt is generated by a hardware device, an End of Interrupt (EOI) must also be issued to enable other hardware interrupts of the same or lower priority.
Set Flags
STC ; F9 [8086]
STD ; FD [8086]
STI ; FB [8086]
These instructions set various flags. STC sets the carry flag; STD sets the direction flag; and STI sets the interrupt flag (thus enabling interrupts).
To clear the carry, direction, or interrupt flags, use the CLC, CLD and CLI instruction. To invert the carry flag, use CMC.
Example:
sti
STD
Usage: STD Modifies flags: DF
Sets the Direction Flag to 1 causing string instructions to auto-decrement SI and DI instead of auto-increment.
Set Flags
STC ; F9 [8086]
STD ; FD [8086]
STI ; FB [8086]
These instructions set various flags. STC sets the carry flag; STD sets the direction flag; and STI sets the interrupt flag (thus enabling interrupts).
To clear the carry, direction, or interrupt flags, use the CLC, CLD and CLI instructions. To invert the carry flag, use CMC.
Example:
std
Do
mov al bl | and al 0F | add al '0'
On al > '9', add al 7
stosb | shr ebx 4
Do_Loop
cld
STC
Usage: STC Modifies flags: CF
Sets the Carry Flag to 1.
Set Flags
STC ; F9 [8086]
STD ; FD [8086]
STI ; FB [8086]
These instructions set various flags. STC sets the carry flag; STD sets the direction flag; and STI sets the interrupt flag (thus enabling interrupts).
To clear the carry, direction, or interrupt flags, use the CLC, CLD and CLI instructions. To invert the carry flag, use CMC.
Example:
stc
SQRTSS
Usage: SQRTSS dest,src Modifies flags: None
Computes the square root of the low single-precision floating-point value in the 'src' operand and stores the single-precision floating-point result in the 'dest' operand.
Scalar Single-Precision FP Square Root
SQRTSS xmm1,xmm2/m128 ; F3 0F 51 /r [KATMAI,SSE]
SQRTSS calculates the square root of the low-order single-precision FP value from the source operand, and stores the single-precision result in the destination register.
The 'src' operand can be an XMM register or a 32-bit memory location. The 'dest' operand is an XMM register. The three high-order doublewords of the 'dest' operand remain unchanged.
EXAMPLE:
sqrtss xmm1 Label
SQRTSD
Usage: SQRTSD dest,src Modifies flags: None
Computes the square root of the low double-precision floating-point value in the 'src' and stores the double-precision floating-point result in the 'dest' operand.
Scalar Double-Precision FP Square Root
SQRTSD xmm1,xmm2/m128 ; F2 0F 51 /r [WILLAMETTE,SSE2]
SQRTSD calculates the square root of the low-order double-precision FP value from the source operand, and stores the double-precision result in the destination register.
The 'src' operand can be an XMM register or a 64-bit memory location. The 'dest' operand is an XMM register. The high quadword of the 'dest' operand remains unchanged.
EXAMPLE:
sqrtsd xmm1 Label
SQRTPS
Usage: SQRTPs dest,src Modifies flags: None
Performs an SIMD computation of the square roots of the four packed single-precision floating-point values in the 'src' operand stores the packed single-precision floating-point results in the 'dest' operand.
Packed Single-Precision FP Square Root
SQRTPS xmm1,xmm2/m128 ; 0F 51 /r [KATMAI,SSE]
SQRTPS calculates the square root of the packed single-precision FP value from the source operand, and stores the single-precision results in the destination register.
The 'src' operand can be an XMM register or a 128- bit memory location. The 'dest' operand is an XMM register.
EXAMPLE:
sqrtps xmm1 Label
SQRTPD
Usage: SQRTPD dest,src Modifies flags: None
Performs an SIMD computation of the square roots of the two packed double-precision floating-point values in the 'src' operand then stores the packed double-precision floating-point results in the 'dest' operand.
Packed Double-Precision FP Square Root
SQRTPD xmm1,xmm2/m128 ; 66 0F 51 /r [WILLAMETTE,SSE2]
SQRTPD calculates the square root of the packed double-precision FP value from the source operand, and stores the double-precision results in the destination register.xmm1 Label
The 'src' operand can be an XMM register or a 128- bit memory location. The 'dest' operand is an XMM register.
EXAMPLE:
sqrtpd xmm1 Label
SQRTPD
Usage: SQRTPD dest,src Modifies flags: None
Performs an SIMD computation of the square roots of the two packed double-precision floating-point values in the 'src' operand then stores the packed double-precision floating-point results in the 'dest' operand.
Packed Double-Precision FP Square Root
SQRTPD xmm1,xmm2/m128 ; 66 0F 51 /r [WILLAMETTE,SSE2]
SQRTPD calculates the square root of the packed double-precision FP value from the source operand, and stores the double-precision results in the destination register.xmm1 Label
The 'src' operand can be an XMM register or a 128- bit memory location. The 'dest' operand is an XMM register.
EXAMPLE:
sqrtpd xmm1 Label
SMSW
Usage: SMSW dest Modifies flags: none
Store Machine Status Word (MSW) into 'dest'.
Store Machine Status Word
SMSW r/m16 ; 0F 01 /4 [286,PRIV]
SMSW stores the bottom half of the CR0 control register (or the Machine Status Word, on 286 processors) into the destination operand. See also LMSW.
For 32-bit code, this would use the low 16-bits of the specified register (or a 16bit memory location), without needing an operand size override byte.
Example:
smsw Label