segment .data sample dq 0x0123456789abcdef field dq 0 segment .text global main main: push rbp mov rbp, rsp mov rax, [sample] ; move quad-word into rax shr rax, 23 ; shift to align bit 23 at 0 and rax, 0x1fffffff ; select the 29 low bits mov [field], rax ; save the field xor rax, rax leave ret