The maximum amount of memory that can be theoretically reserved by this function is one segment (64k bytes), but must notbe used in .EXE programs. In addition the call does not work correctly when DX contains a value in the range 08000h to 0FFFFh (32 to 64k bytes). The high bit is discarded by MSDOS, resulting in a memory reservation of up to 32K bytes less than expected.
The recommended call instead of this one is INT 21h function 31h, which works correctly and also allows any amount of memory to be reserved.
Original text says "0FFF1h to 0FFFFh (32 to 64k bytes)". I believe this may be a mistake - K