А для чего собственно надо двигать с учетом переноса? Может стоит задуматься о глобальное смене алгоритма? На asm такие вещи применяют, когда надо сдвинуть многобайтные слова. На С такого не требуется, так как можно просто объявить тип int или long int