Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді на залік по Ігнату(lg).doc
Скачиваний:
3
Добавлен:
14.09.2019
Размер:
3.87 Mб
Скачать

1.4 Система і формат команд мп вм86.

Система команд МП ВМ86 має практично всі команди, які використовуються у МП ВМ80, а також команди, які виконують істотно нові функції, а саме:

  1. команди множення і ділення двійкових та неупакованих десяткових чисел зі знаком і без знаку;

  2. команди роботи з масивами чисел, у тому числі команди переміщування, сканування і порівняння масивів даних довжиною до 64Кб;

  3. команди тестування вмісту окремих бітів чисел;

  4. команди перетворень кодів з одного типу в інший;

  5. команди програмного формування переривань;

  6. групу команд, які використовуються для координації роботи мультипроцесорних систем.

Майже всі команди можуть працювати як з однобайтовими даними, так і з машинними словами довжиною у два байти, а вказівка на роботу з тією чи іншою довжиною даних міститься у форматі команди.

Rem. Система команд МП ВМ86 може бути представлена в двох видах: на мові асемблера і в машинних кодах. На мові асемблера система команди являє собою біля 100 різних типів команд. Так, команда MOV використовується для передачі байта даних або машинного слова, які розміщені у пам’яті, регістрі або задані у команді за вказаною адресою до пам’яті або регістру. В машинних же кодах в залежності від джерела даних і місця призначення команда MOV має 28 різних кодів.

Характеристика різних функцій, які виконуються командами:

  1. Команди передачі даних – використовуються для передачі байта або машинного слова між пам’яттю або регістрами, а також між регістрами AL, AX і пристроями вводу/виводу. Команди завантаження сегментних регістрів і команди роботи зі стеком також входять до цієї групи.

  2. Команди арифметичних операцій дозволяють проводити арифметичні операції з чотирма різними типами подання чисел: двійковим зі знаком і без знаку, з упакованими та неупакованими десятковими числами зі знаком і без знаку. Стан АЛП МП при виконанні арифметичних команд відображається 6 флагами: C (Carry), AC (Auxiliary Carry), S (Sign), Z (Zero), O (Overflow). Флаг О = 1 якщо результат виконаної арифметичної операції перевищує розрядність МП. Команди арифметичних операцій можуть проводити додавання, віднімання, множення і ділення над одно- і двобайтовими числами.

  3. Команди роботи з бітами чисел дозволяють перетворювати вміст окремих розрядів одно- і двобайтових чисел. До них відносяться логічні команди, команди зсуву (SHIFTS) і переміщення (ROTATE).

    1. Логічні команди включають в себе:

- доповнення одно- та двобайтових чисел;

- логічні “І”, “АБО”, логічне виключаюче АБО”, а також команду TEST, яка реалізує логічне “І” між двома байтами або словами. Ця команда не змінює вмісту операндів, а впливає лише на флаги МП і призначена для перевірки стану бітів окремих чисел.

    1. При виконанні зсувів вміст бітів в байтах або словах може зсуватися арифметично або логічно. Згідно з командою може забезпечуватися до 255 зсувів. Кількість зсувів визначається в команді або константою, або береться з регістру CL. Арифметичний зсув використовують у командах ділення і множення чисел, кратних двом. Логічний зсув – для збереження вмісту окремих розрядів при проведенні різних операцій з байтами або словами. Після виконання команд стан флагу АС не визначений. Флаги P, Z, S зазвичай обнуляються. Флаг С завжди містить значення останнього зсунутого розряду. Після виконання багаторозрядного зсуву стан флагу О не визначений. При виконанні однорозрядного зсуву О = 1, якщо в результаті виконання команди старший (знаковий) розряд був змінений, в іншому випадку флаг О обнуляється.

    2. Команди переміщення забезпечують переміщення вправо або вліво вмісту розрядів байта або машинного слова. Кількість зсувів визначається в команді або константою, або береться з регістру CL. При переміщенні може буди задіяний і флаг С. При переміщеннях змінюються лише два флаги – С і О. Вміст С завжди відповідає вмісту останнього з переміщених розрядів числа. Стан О залежить від виду переміщення. Після виконання багаторозрядного переміщення стан прапорця О не визначений. При виконанні однорозрядного переміщення О = 1, якщо в результаті виконання команди старший (знаковий) розряд був змінений.

  1. Команди роботи з масивами дозволяють проводити п’ять основних операцій з масивами одно- та двобайтових чисел (до 64 Кб), а саме: переміщення чисел, порівняння, сканування (для знаходження значень), запис чисел з акумулятора в масив і навпаки. Кожну з цих команд можна циклічно повторювати за допомогою використання спеціальної однобайтної префікс-команди. Таке циклічне повторення може бути завершене по виконанні вказаної у префікс-команді умови. Команди роботи з масивами включають в себе вказівку на джерело операнда, або приймача операнда, або на приймача і джерело одночасно.

Rem. Як правило, вказівка на джерело операнда міститься в сегменті поточних даних DS, а джерело масива розміщується в додатковому сегменті ES поточних значень. Регістри SI, DI містять зміщення по сегментах, які відповідають масивам джерела та приймача. Тобто вміст цих регістрів має бути встановлений перед початком виконання програми обробки масивів.

  1. Команди передачі керування використовуються для змінення прямої послідовності отримання і обробки команд, при якій чергова команда береться з адреси, вказаної в CS і ІР. В цьому випадку (тобто при передачі управління) МП бере команду з адреси, яка вказана в отриманій команді передачі керування, а команда, яка записана до цього в КК виключається шляхом онулення з наступним записом до нього нових адрес. Існує чотири групи команд передачі керування: умовна, безумовна, ітераційна, програмне формування переривань.

  2. Команди керування роботою МП забезпечують програмне керування роботою МП, включаючи в себе також команди управління флагами, які використовуються для синхронізації роботи МП з ОП.