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
   176   177   178   179   180   181   182   183   184   185   186