void printstr(char *str);

void *_memmove(void *dst, void *src, int len)
{
  int i;
  char *d = dst;
  char *s = src;
  if (d < s) {
    for (i = 0; i < len; i++)
      d[i] = s[i];
  } else {
    for (i = 0; i < len; i++)
      d[len - (i + 1)] = s[len - (i + 1)];
  }
  return dst;
}

int main()
{
  char s[] = "abcdefghijklmn";

  _memmove(s + 1, s + 4, 8);
  printstr(s);

  _memmove(s + 8, s + 1, 3);
  printstr(s);

  _memmove(s, s + 5, 5);
  printstr(s);

  return 0;
}
