cdqe
Sign-extend eax into rax
Sign-extends eax into rax, filling the upper 32 bits with copies of eax's sign bit so 32-bit signed values work in 64-bit arithmetic.
x86-64 and later
CFPFAFZFSFDFOF –––––––
- Changes no flag
Forms
cdqe
It takes no operands and changes no other register or flags. For example, eax = 0xffffffff becomes rax = -1. NASM can assemble movsxd rax, eax to the same instruction.
global _start
section .text
_start:
mov rax, 12
mov rbx, 5
mov rcx, 3
mov rsi, 9
cdqe
mov rax, 60 ; syscall 60: exit
xor rdi, rdi
syscall