série harmônica com montagem x86-64

Tentando calcular uma série harmônica.

Agora eu estou digitando o número que eu quero que a adição suba.

Quando eu digito um número pequeno como 1.2, o programa simplesmente pára, não falha, parece estar fazendo cálculos.

Mas nunca termina o programa

aqui está meu código

<code>denominator:
xor r14,r14             ;zero out r14 register
add r14, 2              ;start counter at 2
fld1                    ;load 1 into st0
fxch    st2
denomLoop:
fld1    
mov [divisor], r14              ;put 1 into st0
fidiv   dword [divisor]         ;divide st0 by r14
inc r14             ;increment r14
fst qword [currentSum]      ;pop current sum value into currentSum
jmp addParts
addParts:
fld qword [currentSum]
fadd    st2     ;add result of first division to 1
fxch    st2             ;place result of addition into st2
fld qword [realNumber]          ;place real number into st0
;compare to see if greater than inputed value
fcom    st2             ;compare st0 with st2
fstsw   ax              ;needed to do floating point comparisons on FPU
sahf                    ;needed to do floating point comaprisons on FPU
jg  done                ;jump if greater than
jmp denomLoop           ;jump if less than 
</code>

O código é basicamente computar o 1/2 ou 1/3 ou 1/4 e adicioná-lo a uma soma corrente, então compara para ver se eu alcancei um valor acima do que eu digitei, uma vez que ele deve sair do loop

vocês vêem o meu erro?

questionAnswers(1)

yourAnswerToTheQuestion