vistador писал(а):уж не знаю ,можно ли тут задавать глупые вопросы начинающим.... Как организовать перенос из одного в другой ?так чтоб обращаться с парой как с 16 разрядным регистром...
нельзя ли привести коротенький пример?
Загрузить в пару регистров 16 разрядоное число легко, например
Код: Выделить всё
ldi r16, low(int16bit);
ldi r17, high(int16bit); где int16bit - 16-ти битная константа
Для операций, превышающих 8 бит существует флаг переноса.
комадны DEC и INC трудно использовать с 16 битными операндами, т. к. они не изменяют флаг переноса вместо них применительно к парам регистров можно использовать sbiw adiw, например
эквивалентно декременту 16 битного числа помещенного в регистровую пару r17:r16, с той только разницей, что данная команда
изменяет флаг переноса.
ROR,ROL используются также как и с 8 ми битными числами, только приходится делать две команды напримет сдвиг влево через перенос
в итоге сдвинет 16 разрядное число через перенос влево на 1 разряд.