КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Команди розгалуження, виклику підпрограм, повернення та рестарту
В цю групу команд входять команди переходів, виклику підпрограм та повернення до основної програми, а також команда рестарту. Команди переходів є засобом зміни вмісту лічильника команд PC і, отже, зміни нормального послідовного виконання програми. Ці команди розділені на дві підгрупи :безумовного та умовного переходу. Команди обох підгруп є 3-х байтовими, коли першим байтом є КОП, а другий та третій байти вміщують в собі молодшу (LAD) та старшу (HAD) півадреси точки переходу (тобто адреси, де розміщена наступна команда програми і яка не є послідовно виконуємою командою). Мнемонічним (т.т. асемблерним) записом команди безумовного переходу є JMP [Address] (т.т. JMP [<B3><B2>]), а команд умовного переходу J<Condition>[Address]. Останні здійснюють передачу керування (т.т. виконання програми) в залежності від стану одного з відповідних розрядів регістру флагів, тобто стану одного з чотирьох флагів (Z, S, P і CY). Ці флаги встановлюються по результату виконання команди (тобто вмісту аккумулятора А), яка задає ту чи іншу операцію, і мають такі значення (таблиця 1.8).
Таблиця 1.8.
Оскільки умова переходу пов’язана зі значенням того чи іншого флага, а таких можливих значень є вісім, то для їх кодування в КОП використовуються три розряди, а поле коду умови при запису самої команди та її формату позначається як ССС. Мнемонічним позначенням команд умовного переходу є J (тобто від JMP) з відповідним позначенням однієї з умов. Мають місце наступні умови переходу і відповідні їм значення поля ССС (таблиця 1.9).
Таблиця 1.9.
Якщо задана полем ССС умова виконується, що перевіряється по значенню відповідного розряду регістра флагів, то керування передається команді, адреса якої визначається другим та третім байтами команди умовного переходу, тобто вміст другого та третього байтів команди заноситься в лічильник команд РС. У разі, якщо задана полем ССС умова не виконується, то ЦП переходить до виконання наступної по порядку команди, для чого вміст лічильника команд просто збільшується на три одиниці. Команди виклику, які можуть бути як безумовними (CALL), так і умовними (CALL IF), застосовуються для звернення до підпрограм, що розміщені поза робочої області основної пам’яті. Мнемонічне позначення команди умовного виклику створюється об’єднанням символу С (від імені CALL) з одним із мнемонічних позначень умов, які наведені в таблиці 1.9. На відміну від команд умовного та безумовного переходу команди виклику завжди передбачають можливість повернення до перерваної основної програми. Для цього будь-яка команда виклику перед передачею керування підпрограмі заносить до стеку адресу повернення до основної програми. Тому вміст старшої половини програмного лічильника PCH заноситься до стеку за адресою (SP)-1, а молодша півадреса PCL-до стеку за адресою (SP)-2, де (SP)- вміст показника стеку. Сам вміст показника стеку при цьому зменшується на дві одиниці. Будь яка підпрограма завжди повинна закінчуватися командою безумовного повернення RET(RETURN), або командою повернення по умові (RETURN IF). Мнемонічне позначення команди умовного повернення створюється об’єднанням символу R (від RETURN) тобто “повернення” з мнемонічним позначенням однієї з ознак умов, які наведені в таблиці 1.9. При виконанні команди повернення вміст чарунки пам’яті, адреса якої в поточний момент часу є в показнику стека SP, переписується до молодшої половини лічильника команд РС, тобто PCL. Після цього вміст чарунки пам’яті, адреса якої на одиницю більше поточного вмісту показчика стеку SP, переписується до старшої половини РС тобто РСН, що призводить до формування в РС адреси повернення з останньої виконаної підпрограми. При цьому вміст показника стеку збільшується на дві одиниці. Команда RST (RESTART) здійснює повторний запуск МП і використовується в операціях з вектором (тобто двійковим кодом) переривань NNN, де N=0/1. Таким чином RST є командою програмних переривань, число яких дорівнює восьми. Для виконання такої команди необхідно вказати початкову адресу підпрограми обробки переривань даного типу. Цю адресу формує на підставі, коду NNN сама одно байтова команда RST n, де n-номер рестарту (n=0-7), і є аргументом команди. При виконанні команди RST вміст РС пересилається до стеку, коли старша півадреса РСН переноситься до стеку за адресою (SP)-1, а молодша півадреса PCL-до стекової області пам’яті за адресою (SP)-2. При цьому вміст показника стека зменшується на дві одиниці. Всі ці дії забезпечують повернення до основної програми після завершення роботи програми по обробці даного переривання. При виконанні команди RST вміст програмного лічильника РС формується як шіснадцятирозрядна адреса, що має в собі поле NNN у такому вигляді: (РС)<-8*NNN
т.т. адреса дорівнює коду NNN, помноженому на 8. Ця адреса і є начальною адресою програми обслуговування переривань даного типу. Перелік команд цієї групи наведений в таблиці 1.10. Таблиця 1.10
11. Команди роботи зі стеком та керування вводу/виводу. Команди цієї групи виконують операції розміщення в стеку і вибірки з нього, вводу і виводу даних, обміну даними, дозволу та заборони переривань та інші. Таким чином, серед цих команд можна виділити такі підгрупи: операції зі стеком, операції вводу/виводу операції керування. Перелік команд цієї групи наведений в таблиці 1.11. Таблиця 1.11
Окрім команд наведених в таблиці 1.11, до цієї групи відносяться команди НLТ (Halt) зупинко та NOP (No op)-немає операцій. Обидві є однобайтові виконуються за 1МЦ та 4Т. Регістри та флаги не встановлюються.
Дата добавления: 2015-05-08; Просмотров: 756; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |