<humor, but true> In the beginning the gods IBM sent some minions to Boca Raton to created their PC, which was based on a tester. There's a lot of history that explains where some of the future "quirks" based on decisions there. But IBM also released technical manuals with complete schematics AND ROM listings (POST & BIOS) for both the PC and AT. If you are fortunate enough to own them, or can get a copy, the BIOS gives you access to disk, video, keyboard, etc. You know, the Basic Input Output System. You can also find them (int access calls) online.
I have found that all software interrupt access points still seem support original calls (plus later documented & undocumented ones). While the ROM (which most just refer to as BIOS) will load the first sector, your boot program, after that, via int 13h, could load any sectors you wish. This is before an OS, for example DOS is loaded, so no MS-DOS calls (int 21h & company, or 32 bit Linux int 80h, 64 bit syscall) are available to you. But all of BIOS is.
I showed you how you don't have to use DS, you can load ES, and so as Frank stated, you could use movsb. In reality, I have found you can run 32 bit instructions (make sure you enable in compiler), just drop to 16 bit instructions where needed (BIOS compatible calls). Again, look up GRDB.EXE (supports 32 bit) debugger, you can easily step through code. As I recall, in Windows 7, a patch might be needed, Linux & PC-BSD don't as it runs just fine in DOSBOX. You can trace over actual hardware calls where needed to debug, before committing to a floppy or USB stick.