TODO: change register usage so memcpy()/memmove() is default, put test for back-copy before memcpy() and back-copy loop after memcpy().