MOVSX Instruction
MOVSX instruction (move with sign-extend) copies the contents of a source operand into a destination operand and sign-extends the value to either 16 or 32 bits.
| Sign Extension of an Integer | |
|---|---|
| Source (8 bits) | Destination (16 bits) |
0 1 0 1 0 1 0 1 |
0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 |
1 0 1 0 1 0 1 0 |
1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 |
MOVSX — Move with Sign-Extend (386+) |
||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||||||||||||||||
AX = BYTE |
SDWORD = SWORD |
SWORD = SDWORD |
|---|---|---|
.data var BYTE 0F0h .code mov eax, 0 movsx ax, var call WriteHex |
||
| Output | Output | Output |
| -3600 | 0FFFFF123h |