First: You should not use 32-bit stuff (eax,ebx,ecx,edx...) in a 16-bit program. It's possible but there are pitfalls.
Second: You should always use a documentation for the system calls (int 21h). Every operating system has different requirements. Look at Ralf Brown's interrupt list for DOS:
Int 21/AH=09h and
Int 21/AH=0Ah and check if you fulfilled all conditions (register usage, memory defines etc.). Hint: you made mistakes on both calls.
Third: You should use a debugger to let the code run step by step and to see if the program does what it should do. I recommend for 16-bit-DOSBox-MSDOS-programs the Turbo Debugger (google for "turbo debugger download").