Цифровые устройства и микропроцессор. Программирование микроконтроллеров семейства MCS-51. Жаринов О.О. - 15 стр.

UptoLike

Составители: 

15
Команды пересылок. Обмен данными является важнейшим элемен-
том любой программы. В эту группу объединены команды, позволяю-
щие переносить данные из одного места памяти микроконтроллера в
другое. Команды этой группы отличаются друг от друга лишь способом
определения источника и приемника данных. Помимо мнемонических
обозначений регистров, как источник, так и приемник данных может
специфицироваться непосредственным адресом, откуда записываются
данные, а также указанием на адрес, где находятся данные (случай кос-
венной адресации). Необходимо помнить, что при пересылке данные
источника копируются в приемник, а не меняются местами – т. е. после
выполнения какой-либо команды пересылок в приемнике и в источни-
ке будут находиться одинаковые числа.
Примеры (во всех примерах в скобках указан номер команды в таб-
лице Прил. 2):
(10) MOV 02,0A – данные из ячейки внутреннего ОЗУ с адресом
0Аh копируются в ячейку внутреннего ОЗУ с адресом 02h.
(13) MOV @R0,A – результатом выполнения данной команды будет
копирование данных из аккумулятора в ячейку внутреннего ОЗУ с ад-
ресом, равным содержимому регистра R0.
Помимо копирования данных, имеется и возможность взаимного об-
мена данными: т. е. данные из источника переносятся в приемник, и
одновременно – из приемника в источник (команды 23–26). Некоторые
функциональные ограничения этого способа обмена данными связаны с
тем, что в качестве одного из операндов всегда выступает аккумулятор.
Несколько особняком в ряду команд пересылок стоят операции со
стеком (команды 27 и 28). В качестве операнда используется один пара-
метр: команда PUSH ads осуществляет пересылку данных из ячейки
внутреннего ОЗУ с адресом ads в стек. При этом приемником данных
выступает ячейка ОЗУ с адресом, указанным в SP. Необходимо отме-
тить, что при выполнении команды PUSH указатель стека сначала уве-
личивается на единицу, а только потом в ячейку с полученным адресом
записываются данные. Для извлечения данных из стека используется
команда POP add, где add – это адрес ячейки-приемника данных. В
случае извлечения данных из стека сначала выбираются данные, а по-
том указатель стека SP уменьшается на единицу. Ячейка стека способ-
на играть роль некоторого «стакана» при необходимости взаимного об-
мена содержимым между ячейками ОЗУ, минуя аккумулятор. Нелишне
заметить, что, согласно принятому при работе со стеком способу адре-