Hello I am tinkering around with assembly level programming. I have the following code
mov al, \'H\'
call my_function
my_function:
mov ah,0x0e
As Jester notified in his comment, all the labels which are supposed to be functions must be below jmp $
statement so it doesn't execute an extra time.
P.S. jmp $
is instructing the system to jump to the current location which results in an infinite loop, not allowing to proceed further where the functions exist.