Портал освітньо-інформаційних послуг «Студентська консультація»

  
Телефон +3 8(066) 185-39-18
Телефон +3 8(093) 202-63-01
 (093) 202-63-01
 studscon@gmail.com
 facebook.com/studcons

<script>

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 

  ga('create', 'UA-53007750-1', 'auto');

  ga('send', 'pageview');

 

</script>

Система команд мікропроцесора

Предмет: 
Тип роботи: 
Реферат
К-сть сторінок: 
11
Мова: 
Українська
Оцінка: 
Система команд мікропроцесора
 
В загальному випадку система команд процесора включає в себе наступні чотири основні групи команд:
команди пересилання даних;
арифметичні команди;
логічні команди;
команди переходів.
Команди пересилання даних не потребують виконання ніяких операцій над операндами. Операнди просто пересилаються (точніше, копіюються) із джерела (Source) в приймач (Destination). Джерелом і приймачем можуть бути внутрішні регістри процесора, комірки пам’яті або пристрої вводу/виводу. АЛУ в даному випадку не використовується.
Арифметичні команди виконують операції додавання, віднімання, множення, ділення, збільшення на одиницю (інкрементування), зменшення на одиницю (декрементування) і т. д. Цим командам потрібно один або два вхідних операнди. Формують команди один вихідний операнд.
Логічні команди виконують над операндами логічні операції, наприклад, логічне І, логічне АБО, виключаюче АБО, очистку, інверсію, різні зсуви (вправо, вліво, арифметичний зсув, циклічний зсув). Цим командам, як і арифметичним, потрібно один або два вхідних операнди, і формують вони один вихідний операнд.
Нарешті, команди переходів призначені для зміни звичайного порядку послідовного виконання команд. З їх допомогою організуються переходи на підпрограми і повернення із них, різноманітні цикли, розгалуження програм, пропуски фрагментів програм і т. д. Команди переходів завжди змінюють вміст лічильника команд. Переходи можуть бути умовними і безумовними. Саме ці команди дозволяють будувати складні алгоритми обробки інформації.
У відповідності з результатом кожної виконаної команди встановлюються або очищаються біти регістра стану процесора (PSW). Але потрібно пам’ятати, що не всі команди змінюють всі наявні в PSW прапорці. Це визначається особливостями кожного конкретного процесора.
У різних процесорів системи команд суттєво розрізняються, але в основі своїй вони дуже схожі. Кількість команд у процесорів також різна. Наприклад, у процесора МС68000 всього 61 команда, а у процесора 8086 – 133 команди. У сучасних потужних процесорів кількість команд досягає декількох сотень. В той ж час існують процесори з скороченим набором команд (так звані RISC-процесори), в яких за рахунок максимального скорочення кількості команд досягається збільшення ефективності і швидкості їх виконання.
Розглянемо тепер особливості чотирьох виділених груп команд процесора більш детально.
 
1. Команди пересилання даних
 
Команди пересилання даних займають дуже важливе місце в системі команд будь-якого процесора. Вони виконують наступні найважливіші функції:
завантаження (запис) вмісту у внутрішні регістри процесора;
збереження в пам’яті вмісту внутрішніх регістрів процесора;
копіювання вмісту із однієї області пам’яті в іншу;
запис в пристрої вводу/виводу і зчитування із пристроїв вводу/виводу.
В деяких процесорах (наприклад, Т-11) всі ці функції виконуються однією єдиною командою MOV (для байтових пересилань – MOVB) але з різними методами адресації операндів.
В інших процесорах окрім команди MOV є ще декілька команд для виконання перелічених функцій. Наприклад, для завантаження регістрів можуть використовуватися команди завантаження, причому для різних регістрів – різні команди (їх позначення зазвичай будуються з використанням слова LOAD – завантаження). Часто виділяються спеціальні команди для збереження в стеку і для добування із стека (PUSH – зберегти в стеку, POP – добути із стека). Ці команди виконують пересилання з автоінкрементною і з автодекрементною адресацією (навіть якщо ці режими адресації не передбачені в процесорі в явному вигляді).
Іноді в систему команд вводиться спеціальна команда MOVS для рядкового (або ланцюгового) пересилання даних (наприклад, в процесорі 8086). Ця команда пересилає не одно слово або байт, а задану кількість слів або байтів (MOVSB), тобто ініціює не один цикл обміну по магістралі, а декілька. При цьому адреса пам’яті, з якою відбувається взаємодія, збільшується на 1 або на 2 після кожного звернення або ж зменшується на 1 або на 2 після кожного звернення. Тобто в неявному вигляді застосовується автоінкрементна або автодекрементна адресація.
В деяких процесорах (наприклад, в процесорі 8086) спеціально виділяються функції обміну з пристроями вводу/виводу. Команда IN використовується для вводу (зчитування) інформації із пристрою вводу/виводу, а команда OUT використовується для виводу (запису) в пристрій вводу/виводу. Обмін інформацією в цьому випадку відбувається між регістром-акумулятором і пристроєм вводу/виводу. В більш продвинутих процесорах цього ж сімейства (починаючи з процесора 80286) добавлені команди рядкового (ланцюгового) вводу (команда INS) і рядкового виводу (команда OUTS). Ці команди дозволяють пересилати цілий масив (рядок) даних із пам’яті в пристрій вводу/виводу (OUTS) або із пристрою вводу/виводу в пам’ять (INS). Адреса пам’яті після кожного звернення збільшується або зменшується (як і в випадку з командою MOVS).
Також до команд пересилання даних відносяться команди обміну інформацією (їх позначення будується на основі слова Exchange). Может бути передбачений обмін інформацією між внутрішніми регістрами, між двома половинами одного регістра (SWAP) або між регістром і коміркою пам’яті.
 
2. Арифметичні команди
 
Арифметичні команди розглядають коди операндів як числові двійкові або двійково-десятичні коди. Ці команди можуть бути розділені на п’ять основних груп:
команди операцій з фіксованою комою (додавання, віднімання, множення, ділення) ;
команди операцій з плаваючою комою (додавання, віднімання, множення, ділення) ;
команди очистки;
команди інкремента і декремента;
команда порівняння.
Команди операцій з фіксованою комою працюють з кодами в регістрах процесора або в пам’яті як зі звичайними двійковими кодами.
Фото Капча