Архитектура микроконтроллеров семейства MCS-51. Бояринов А.Е - 37 стр.

UptoLike

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

XRL IP, #65h IP = 00h.
SWAP A
обмен тетрадами внутри A
П р и м е р: A = 0D7h SWAP A A = 7Dh.
2.5 КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ
К данной группе команд (табл. П.4) относятся команды условного и безусловного ветвления, вызо-
ва подпрограмм и возврата из них, а также команда пустой операции NOP. В большинстве команд ис-
пользуется прямая адресация, т.е. адрес перехода целиком (или его часть) содержится в самой команде
передачи управления. Можно выделить три разновидности команд ветвления по разрядности указывае-
мого адреса перехода.
2.5.1 Длинный переход
Длинный переход переход по всему адресному пространству памяти программ. В команде содер-
жится полный 16-битный адрес перехода (ad16). Трехбайтные команды длинного перехода содержат в
мнемокоде букву L (Long). Всего существуют две такие команды: LJMP – длинный переход и LCALL
длинный вызов подпрограммы. На практике редко возникает необходимость перехода в пределах всего
адресного пространства, и чаще используются укороченные команды перехода, занимающие меньше
места в памяти.
LCALL<addr 16>
длинный вызов
(PC): = (PC)+3;
(SP): = (SP)+1, ((SP)):=(PC[7÷0]);
(SP): = (SP)+1, ((SP)) :=( PC [15÷8]);
(PC): = < addr[15÷0]>.
П р и м е р: Пусть SP = 07h, адрес PRN = 1234h, адрес LCALL = 0126h.
После
LCALL PRN SP = 09h, PC 1234h,
(ОЗУ [08]) = 26h, (ОЗУ [09]) = 01h.
LJMP <addr 16>
длинный переход
(PC): = <addr [15÷0]>;
LJMP <метка>.
2.5.2 Абсолютный переход
Абсолютный переход переход в пределах одной страницы памяти программ размером 2048 байтов. Та-
кие команды содержат только 11 младших битов адреса перехода (ad11). Команды абсолютного перехо-
да имеют формат 2 байта. Начальная буква мнемокода A (Absolute). При выполнении команды в вы-
численном адресе следующей по порядку команды ((РС) = (PC) + 2) 11 младших битов заменяются на
ad11 из тела команды абсолютного перехода.
2.5.3 Относительный переход
Короткий относительный переход позволяет передать управление в пределах от 128 до +127 байт
относительно адреса следующей команды (команды, следующей по порядку за командой относительно-