I'm trying to reproduce the qemu hello-word example from the post. The code doesn't seem to have much room for bugs:
# boot.asm
.code16
.global init # makes our label "init" available to the outside
init: # this is the beginning of our binary later.
mov $0x0e41, %ax # sets AH to 0xe (function teletype) and al to 0x41 (ASCII "A")
int $0x10 # call the function in ah from interrupt 0x10
hlt # stops executing
.fill 510-(.-init), 1, 0 # add zeroes to make it 510 bytes long
.word 0xaa55 # magic bytes that tell BIOS that this is bootable
But after compiling it and loading it with qemu:
as -o boot.o boot.asm
ld -o boot.bin --oformat binary -e init boot.o
qemu-system-x86_64 boot.bin
the character 'A' is printed multiple times:

I've repeated the experiment multiple times. Mostly it behaves normally and only prints the character once. Sometimes it repeats the character 2 or 3 times. The screenshot shows a rare but existing behavior.
Does anyone have an idea how this could happen?
Thanks in advance.