Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архітектура методичка.doc
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
20.71 Mб
Скачать

42. Операції зсуву.

Логічні зсуви

При виконанні логічного зсуву праворуч або ліворуч всі розряди слова зсуваються на один розряд у відповідну сторону, в перший розряд записується нуль, а останній роз­ряд випадає (рис. 6.4), Зсуви досить часто використовуються як складові операції при виконанні багатьох алгоритмів обробки даних. Для формату представлення даних без знаків зсув на один розряд ліворуч еквівалентний множенню на два, а на один розряд праворуч - відповідно цілочисельному діленню на два.

Команда логічного зсуву має наступні поля: код логічної операції зсуву праворуч або ліворуч, адреса операнда та код зсуву, який вказує величину зсуву, тобто кількість розрядів, на які має бути проведений зсув. Якщо операнд позначити через X, а код зсуву через У, то результат Z виконання операції буде рівним Х = Х 2+1-y, де знак “+” відповідає зсуву ліворуч, а знак - праворуч.

Арифметичні зсуви

Арифметичні зсуви дуже подібні до попередніх (логічних), але вони мають таку особ­ливість, як розмноження знака при зсуві праворуч та збереження знака при зсуві ліво­руч (рис. 6.5).

Такі зсуви також мають зміст множення і ділення на два для формату представлення даних із знаками в оберненому та доповняльному кодах. Вони дозволяють після операції зсуву ліворуч зберегти знак представленого числа та після операції зсуву праворуч збе­регти коректний результат ділення на два.

Команда арифметичного зсуву має наступні поля: код операції арифметичного зсуву праворуч або ліворуч, адреса операнда та код зсуву, який вказує величину зсуву, тобто кількість розрядів, на які має бути проведений зсув.

Циклічні зсуви

Циклічний зсув передбачає, що розряди, які витісняються з одного боку операнда, дописуються з іншого його боку (рис. 6.6).

Команда циклічного зсуву має наступні поля: код операції циклічного зсуву право­руч або ліворуч, адреса операнда та код зсуву, який вказує величину зсуву, тобто кіль­кість розрядів, на які має бути проведений зсув.

43. Операції відношення.

Порівняння двійкових кодів на збіжність

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

де і = 0, 1 ... n - номери розрядів чисел X та Y, які порівнюються, Z - розряд ре­зультату.

Визначення старшинства двійкових кодів

Операції визначення старшинства двійкових кодів, тобто визначення, яке з двох чи­сел є меншим, більшим, меншим-рівним, більшим-рівним, виконуються з використан­ням двійкового віднімання.

Якщо це числа без знаків, то при відніманні першого числа від другого отриманий результат може бути більшим нуля, рівний нулю, або меншим нуля. Тоді, якщо отрима­ний результат є більшим нуля, то перше число є більшим від другого, якщо отриманий результат рівний нулю, то числа рівні, а якщо отриманий результат є меншим нуля, то друге число є більшим від першого.

Якщо це числа із однаковими знаками, то при відніманні першого числа від другого отриманий результат може бути додатнім, рівним нулю, або від’ємним. Тоді якщо отри­маний результат рівний нулю, то числа рівні, при від’ємному результаті перше число є меншим другого, а друге відповідно більшим, а при додатному результаті перше число є більшим, а друге відповідно меншим від першого. Якщо ж це числа із різними знаками, то більшим є додатне число