Erro do Assembly: o Mach-O de 64 bits não suporta endereços absolutos de 32 bits

Então, estou aprendendo a montagem x86_64 nasm no meu mac por diversão. Depois do hello world e de uma aritmética básica, tentei copiar um programa hello world um pouco mais avançado deesse sit e modificá-lo para intel de 64 bits, mas não consigo me livrar dessa mensagem de erro:hello.s:53: error: Mach-O 64-bit format does not support 32-bit absolute addresses. Aqui está o comando que eu uso para montar e vincular:nasm -f macho64 hello.s && ld -macosx_version_min 10.6 hello.o. E aqui está a linha relevante:

cmp rsi, name+8

rsi é o registro que estou usando para o meu índice no loop, e name é uma palavra quad reservada para a entrada do usuário, que é o nome que, a essa altura, já foi gravad

Aqui está uma parte do código (para ver o resto, clique no link e vá para o final, a única diferença é que eu uso registros de 64 bits):

loopAgain:
mov al, [rsi]           ; al is a 1 byte register
cmp al, 0x0a            ; if al holds an ascii newline...
je exitLoop             ; then jump to label exitLoop

; If al does not hold an ascii newline...
mov rax, 0x2000004      ; System call write = 4
mov rdi, 1              ; Write to stdout = 1
mov rdx, 1              ; Size to write
syscall

inc rsi

cmp rsi, name+8         ; LINE THAT CAUSES ERROR
jl loopAgain

questionAnswers(2)

yourAnswerToTheQuestion