Page 181 - 149
P. 181
Порожня NOP 00000000 1 1 1 (PC)(PC)+1
команда
Примітка: Асемблер дозволяє використання узагальненого імені команд JMP
i CALL, які в процесі трансляції замінюються оптимальними за форматом
командами переходу (AJMP, SJMP, LJMP) або виклику (ACALL,LCALL).
Опосередкований перехід. Команда JMP @A+DPTR дозволяє
передачу керування за опосередкованою адресою. Ця команда є вдалою для
організації переходів на адресу, яка обчислюється в програмі і наперед
невідома при написанні її тексту. Таким чином для виконання безумовного
переходу лічильник PC завантажується адресою A+DPTR.
Умовні переходи. МК51 має розвинуту систему умовних переходів,
що дозволяє вести розгалуження програм за такими умовами: акумулятор
містить нуль (JZ); вміст акумулятора не рівний нулю (JNZ); перенос рівний
одиниці (JC); перенос рівний нулю (JNC);адресований біт рівний одиниці
(JB); адресований біт рівний нулю (JNB). Крім аналізу індикаторів регістру
PSW та бітів внутрішнього ОЗП в командах умовних переходів може
здійснюватись попереднє декрементування (буква D у мнемоніці команди)
або порівняння (буква С у мнемоніці команди) операндів.
Для організації програмних циклів ефективно використовувати
команду DJNZ, при цьому як лічильник циклів можна використовувати
регістр або прямоадресований байт. Цикл буде відновлюватись до тих пір,
доки лічильник не вичерпається.
Команда CJNE ефективно використовується в процедурах очікування
якої-небудь події. Наприклад, команди
WAIT: CJNE A,P0,WAIT
буде виконуватись до тих пір, доки на лінії порту 0 не установиться
інформація, яка співпадає з вмістом акумулятора.
Підпрограми. Для звернення до підпрограм необхідно використати
команди виклику (LCALL, ACALL). Ці команди на відміну від команд
переходів (LJMP, AJMP) зберігають в стеці адресу повернення в основну
програму. Для повернення з підпрограми необхідно використати команду
RET. Команда RETI відрізняється від RET тим, що за нею припиняється
обслуговування переривання, тобто дозволяється переривання обслуженого
рівня повторно.
8.1.2 Родина МК52
Створивши вдалу мікро-ЕОМ 8051, розробники не зупинилися на
досягнутому і почали пошуки шляхів її удосконалення. При цьому була
поставлена задача розширити функціональні можливості мікро-ЕОМ і
підвищити її продуктивність.
Цим вимогам задовольняє збільшення пам'яті програм на кристалі аж
до 64 Кбайт, введення додаткових регістрів спеціальних функцій і нових
режимів роботи, підвищення захищеності програм від нелегального
182