newbie questiom about %rip in x86-64 and var



hi all

newbie questiom about %rip in x86-64,

this a toy program. and show use of types
about x86-64 var can be accesses with %rip
but %rip change always as indicate
i don't mean ? manual are in english
sure i have no translate correctly
can u explain with other simple word.

thx in advance



:
movb $1, uc(%rip) # %rip change always ?!
movb $-2, sc(%rip)
movw $10, us(%rip)
movw $-20, ss(%rip)
movl $100, ui(%rip)
movl $-200, si(%rip)
movq $1000, ul(%rip)
movq $-2000, sl(%rip)
movl $0x3f99999a, %eax
movl %eax, f(%rip)
movabsq $4614838538166547251, %rax
movq %rax, d(%rip)
movabsq $-5534023222112866304, %rax
movl $16385, %edx
movq %rax, ld(%rip)
movl %edx, ld+8(%rip)
movzbl uc(%rip), %eax
movzbl %al, %edx
movl $1, %esi
movl $.LC3, %edi
movl $0, %eax
call printf
....
.size main, .-main
.comm uc,1,1
.comm sc,1,1
.comm us,2,2
.comm ss,2,2
.comm ui,4,4
.comm si,4,4
.comm ul,8,8
.comm sl,8,8
.comm f,4,4
.comm d,8,8
.comm ld,16,16
....

.