Page 178 - 149
P. 178

три  різновидності  команд  розгалуження  відповідно  до  розрядності  адреси
                  переходу.
                         Довгий перехід. Перехід по всьому адресному простору ПП. В команді
                  міститься  повна  16-бітова  адреса  переходу  (ad16).  Трибайтова  команда
                  довгого переходу містить в мнемоніці букву L (Long). Розрізняють дві таких

                  команди: LJMP -довгий перехід і LCALL -довгий виклик підпрограми. Довгі
                  переходи  використовуються  рідко,  а  частіше  застосовуються  скорочені
                  команди переходів, які займають менше місця в пам’яті.
                         Абсолютний  перехід.  Даний  перехід  відбувається  в  межах  однієї
                  сторінки  пам’яті  програм  об’ємом  2048  байтів.  Такі  команди  абсолютного
                  переходу  мають  формат  2  байти,  і  їх  мнемокод  починається  з  букви  А
                  (Absolute).  При  їх  виконанні  в  обчисленій  адресі  наступної  команди
                  ((РС)=(РС)+2) 11 молодших бітів замінюються на ad11, що є в тілі команди
                  абсолютних переходів (ACALL i AJMP).
                         Відносний  перехід.  Короткий  відносний  перехід  дозволяє  передати
                  керування  в  межах-128+127  байтів  відносно  адреси  наступної  команди
                  (команди, що є наступною за командою відносного переходу). МК51 має одну
                  таку  команду  переходу  SJMP  (Short).  Всі  команди  умовних  переходів
                  використовують  даний  метод  адресації.  Відносна  адреса  переходу  (rel)
                  знаходиться у другому байті команди. Таким чином в командах з відносним
                  переходом за базу взятий лічильник команд, а перехід відбувається відносно
                  даної бази.
                         Таблиця 8.18 - Група команд передачі керування
                  Назва команди  Мнемокод                КОП             Т  В  Ц  Операція
                  Довгий перехід  LJMP ad 16             00000010        12  3  2  (PC)ad 16
                  в повному
                  об’ємі пам’яті
                  Абсолютний           AJMP ad 11        a 10a 9a 800001  6   2  2  (PC)(PC)+2
                  перехід                                                             (PC 0-10)ad 11
                  всередині
                  сторінки в 2
                  Кбайти
                  Короткий             SJMP rel          10000000        5    2  2  (PC)(PC)+2
                  відносний                                                           (PC)(PC)+rel
                  перехід
                  всередині
                  сторінки в 256
                  байтів
                  Непрямий             JMP @A+           01110011        1    1  2  (PC)(A)+
                  відносний            +DPTR                                          +(DPTR)
                  перехід

                  Перехід, якщо        JZ rel            01100000        5    2  2  (PC) (PC)+2,





                                                                                                             179
   173   174   175   176   177   178   179   180   181   182   183