# BSWAP
# Byte Swap
Opcode | Mnemonic | Description |
---|---|---|
0F C8+rd | BSWAP r32 | Reverses the byte order of a 32-bit register. |
# Description
Reverses the byte order of a 32-bit (destination) register: bits 0 through 7 are swapped with bits 24 through 31, and bits 8 through 15 are swapped with bits 16 through 23. This instruction is provided for converting little-endian values to big-endian format and vice versa.
To swap bytes in a word value (16-bit register), use the XCHG instruction. When the BSWAP instruction references a 16-bit register, the result is undefined.
The BSWAP instruction is not supported on IA-32 processors earlier than the Intel486 processor family. For compatibility with this instruction, include functionally equivalent code for execution on Intel processors earlier than the Intel486 processor family.
# Operation
Temporary = Destination;
Destination[0..7] = Temporary[24..31];
Destination[8..15] = Temporary[16..23];
Destination[16..23] = Temporary[8..15];
Destination[24..31] = Temporary[0..7];
1
2
3
4
5
6
2
3
4
5
6
# Flags affected
None.
# Exceptions
None.
Instruction | Latency | Throughput | Execution Unit |
---|---|---|---|
CPUID | 0F3n/0F2n | 0F3n/0F2n | 0F2n |
BSWAP | 1/7 | 0.5/1 | ALU |