Команды взаимодействия c аккумулятором WРассматривая БАЙТориентированные команды сложения и вычитания, мы говорили о регистре-посреднике – регистре-аккумуляторе W. Закономерен вопрос: каким образом записать число в регистр аккумулятор W ?
У нас есть три варианта:
1) в регистр W можно копировать число из другого регистра;
2) в регистр W можно записать число в диапазоне от 0 до 255;
3) в регистр W число может записаться в результате операции сложения или вычитания. Надеюсь, что байт-ориентированные команды усвоены.
Мы будем рассматривать 1й и 2й варианты. Строго говоря 2й вариант относится к операциям с константами. Но мы решили осветить его именно в этом месте, т.к. проще будет понять отличия. Дополнительно будет изучен вариант копирования числа из аккумулятора W в регистр.
Копировать в РЕГИСТР W число из регистра F MOVF F,W
Копировать в РЕГИСТР W обычное число MOVLW K
Копировать число из РЕГИСТРА W в регистр F MOVWF F
MOVF KLOP,W ; копировать в регистр W число из регистра KLOP
MOVLW .255 ; копировать в регистр W число 255
MOVWF KNOP ; копировать число из регистра W в регистр KNOP
Внимательно посмотрите на эти команды и почувствуйте разницу, т.е. поймите, какой командой можно скопировать число из регистра, а какой командой можно скопировать в W число – это разные вещи.
Команда копирования числа из регистра W в другой регистр не требует комментариев.
Есть случай записи команды "MOVF KLOP,F" , при этом результат помещается назад в регистр KLOP. Казалось бы – глупость, но это не так. Этой командой проверяют значение регистра на равенство нулю. Как это делается – будет рассмотрено в частных случаях.
|