printf float in nasm assembly 64-bit

Chcę wydrukować wartość zmiennoprzecinkową za pomocą printf

global main
extern printf

section .data
   string: db `%f\n`, 0

section .bss
   rs: resq 1

[...]

   movq xmm0, [rs]
   mov rdi, string
   mov rax, 0
   call printf

rs zawiera wartość zmienną 1.6

(gdb) x/fg &rs
0x600ad8 <rs>:  1.6000000000000001

ale program drukuje

[username@localhost folder]$ ./programname
0.000000

komu mogę wydrukować program 1.6? Co ja robię źle?

questionAnswers(2)

yourAnswerToTheQuestion