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