И еще немного о возвращаемых результатах
From Wiki.conus.info
Резльутат выполнения функции возвращается через регистр EAX, а если результат байт, то в самой младшей части EAX - AL.
Вот почему, как это исторически сложилось, функция не может вернуть ничего более чем то что помещается в тип int, а если и хочет, то приходится возвращать через указатели, указываемые в аргументах.
Хотя, позже и стало возможным, вернуть, скажем, целую структуру, но этим до сих пор мало кто пользуется.