when calling printf multiple times, only the first printf works

Viewed 26

This is the code that I am using:

printing:
    decq    %r13
    movq    $0, %rax
    movq    %r8, %rsi
    movq    $output, %rdi
    call    printf
    cmpq    $0, %r13
    jg  printing

where %r13 is used as the counter. So as I saw while debugging in gdb, if I have a value of 5 in %r13, the subroutine printing does get executed 5 times, 1 after another. But for some reason, I never get the value that is in %r8 printed more than once. No matter if the number in %r13 is 1 or 50.

And if I change the value of %r8 or %rsi, then that value also gets printed only once.

What could be causing printf just not to print the contents of %r8 more than 1 time?

0 Answers
Related