А   Б  В  Г  Д  Е  Є  Ж  З  І  Ї  Й  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц  Ч  Ш  Щ  Ю  Я 


Арифметичний зрушення

Арифметичний зрушення 16 бітного операнда джерела S1 вліво на кількість бітів, вказане в 4 молодших бітах другого операнда, S2 і збереження результату в регістрі призначення. Якщо регістром призначення є 36-бітний акумулятор, молодша частина акумулятора (АТ або ВО) заповнюється нулями, а в регістр розширення (А2 або В2) заноситься розширення знакового біта.

Арифметичний зрушення 16 бітного операнда джерела S1 вправо на кількість бітів, вказане в 4 молодших бітах другого операнда, S2 і збереження результату в регістрі призначення. Якщо регістром призначення є 36-бітний акумулятор, молодша частина акумулятора (АТ або ВО) заповнюється нулями, а в регістр розширення (А2 або В2) заноситься розширення знакового біта.

Арифметичний зрушення стосовно РСДО полягає в збереженні значення старшого (знакового) розряду при зрушеннях вправо і вліво; при зсуві знак не поширюється. це пов'язане з тим, що арифметичний зрушення РСДО використовується при обробці операндів в командах з плаваючою комою, де слідом за знаковим розрядом розташовані розряди характеристики і в поширенні значення знакового розряду немає необхідності. Введення даних у знакового розряду і його відновлення після зсуву здійснює схема управління РСДО.

Арифметичні зрушення вліво (а і вправо (б. Арифметичні зрушення з підвищеною точністю можуть бути отримані шляхом поєднання арифметичних зрушень з одинарної точністю з циклічними або логічними зрушеннями і використання розряду З як ланка зв'язку.

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

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

Проводиться арифметичний зрушення s на один розряд вліво.

Виконується довгий арифметичний зрушення (команда SRDA) вправо на 32 розряду.

Проводиться арифметичний зрушення твори вліво (якщо мантиса менше 0 1) і зменшення загального порядку твори на число зрушень, округлення результату.

Операції арифметичного зсуву вліво SLA (Left Algebraic) і арифметичного зсуву вправо SRA (Right Algebraic) виробляють зрушення вліво або вправо значущої частини додаткового коду числа. При зсуві вправо пропадає значення з розряду тридцять один, а в розряд один надходить код знакового розряду. Розряд знаку при цьому не змінюється. Зрушується код знаходиться в регістрі RI, а величина зсуву вказується шістьма молодшими двійковими розрядами адреси другого операнда. Операції SLDA і SRDA виробляють подвійний (Double) арифметичний зрушення відповідно вліво і вправо. Зрушується код складається з 64 бітів і займає два загальних регістра. Старша частина знаходиться в регістрі з парним номером Ri, а молодша - в регістрі з наступним непарним номером.

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

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

Операція арифметичного зсуву полягає в переміщенні вліво або вправо двійкових розрядів з одних позицій на інші зі збереженням порядку їх слідування щодо один одного за винятком знакового розряду. Операції зсуву виконуються командами: SLA (SHIFT LEFT SINGLE ALGEBRAIC) - ЗСУВ вліво арифметичним, SRA (SHIFT RIGHT SINGLE ALGEBRAIC) - ЗСУВ ВПРАВО арифметичне, SLDA (SHIFT LEFT DOUBLE ALGEBRAIC) - ЗСУВ вліво ПОДВІЙНИЙ арифметичне, SLDA (SHIFT RIGHT DOUBLE ALGEBRAIC) - ЗСУВ ВПРАВО ПОДВІЙНИЙ арифметичне. Ці команди застосовуються для зміни або зрівнювання масштабів, так як вони забезпечують множення або ділення операндів на 2 де k є число двійкових зрушень.

Операція арифметичного зсуву, полягає в переміщенні вліво або вправо двійкових розрядів з одних позицій на інші зі збереженням порядку їх слідування щодо один одного за винятком знакового розряду. Операції зсуву виконуються командами: SLA (SHIFT LEFT SINGLE ALGEBRAIC) - ЗСУВ вліво арифметичним, SRA (SHIFT RIGHT SINGLE ALGEBRAIC) - ЗСУВ ВПРАВО арифметичне, SLDA (SHIFT LEFT DOUBLE ALGEBRAIC) - ЗСУВ вліво ПОДВІЙНИЙ арифметичне, SRDA (SHIFT RIGHT DOUBLE ALGEBRAIC) - ЗСУВ ВПРАВО ПОДВІЙНИЙ арифметичне. Ці команди застосовуються для зміни або зрівнювання масштабів, так як вони забезпечують множення або ділення операндів на 2ft, де k є число двійкових зрушень.

Команда арифметичного зсуву вправо ASR (Arithmetic Shift Right) заносить в біт З значення нульового розряду приймача, а значення кожного наступного розряду зрушує на одну позицію вправо. Значення розряду 15 засилається в розряд 14 а саме при цьому не змінюється.

Команда арифметичного зсуву вліво (ASL) зрушує вміст слова на один біт вліво. У нульовий біт слова ЕОМ поміщає нуль, а біт 15 зсувається в біт З коду умов. Якщо результат негативний, в одиницю встановлюється біт N, якщо результат нульовий, в одиницю встановлюється біт Z; біт V встановлюється як виключає Або бітів N і С.

Команда арифметичного зсуву вправо (ASR) виконується аналогічно команді ASL. Вміст слова приймача зсувається на один біт вправо. Дублювання біта 15 зберігає знак цілого числа (це особливо важливо, якщо число негативно), тому зрушення і називається арифметичним.

При арифметичних зрушеннях розряди зсуваються в обхід старшого (знакового) розряду результату операції АЛУ в старшій МПС, а при логічних зрушеннях старший розряд зсувається разом з іншими розрядами. Під час зрушень в бік молодших розрядів двонаправлений висновок PF3 зазвичай є входом, а висновок PFO - виходом.

При арифметичному зсуві вправо знак числа, вираженого в додатковому (додаток до 2) або зворотному (додаток до 1) коді повинен зберігатися в знаковому розряді.

При арифметичних зрушення цього достатньо, щоб висунути за розрядну сітку все поле цілої частини. Так як в подвійних зрушення коду беруть участь не 64 біта, то висунути всі вміст з регістрів можна.

При арифметичних зрушення по додатковому коду молодші звільняються розряди заповнюються нулями, а старші - значеннями розряду знака.

Приклад суміщених у часі мікро -[IMAGE ]Микрооперации операторів лічильника. При арифметичному зсуві знаковий розряд не зрушується. Висуваються з регістра біти слова губляться.

При арифметичних зрушення вправо в звільняються зліва розряди поширюється значення знакового розряду зсувається інформації. При зрушеннях в операції множення з фіксованою комою в звільняються старші розряди поширюється значення перенесення суматора. Запам'ятовування значень знака або перенесення і їх поширення здійснює схема управління РСДО.

При арифметичних зрушення вліво схема управління РШДП запам'ятовує значення знакового розряду перед зрушенням і відновлює його на М2[0]після закінчення зсуву. У звільняються справа розряди вдвигаются нулі які формуються в РРД.

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

При арифметичному зсуві знаковий розряд не зрушується. Висуваються з регістра біти слова губляться.

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

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

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

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

Опис: Арифметичний зсув операнда приймача D вліво на один біт і збереження результату в акумуляторі приймача. Старший біт операнда зсувається при виконанні інструкції в біт перенесення С, а молодший біт операнда заповнюється нулем. Різниця між інструкціями ASL і LSL полягає в тому, що при арифметичному зсуві встановлюється біт переповнення, якщо воно виникає.

Опис: Арифметичний зсув операнда приймача D вправо на один біт і збереження результату в акумуляторі приймача. Молодший біт операнда зсувається при виконанні інструкції в біт перенесення С, а старший біт операнда залишається колишнім.

Чим відрізняється арифметичний зрушення інформації від логічного.

Використання операцій арифметичного зсуву при програмуванні досить очевидно.

Запуск операції арифметичного зсуву (логічного зсуву) відбувається під час запису числа зрушень за адресою 777316 (777314) При цьому знак числа зрушень визначає напрямок зрушень. Tlpt виконанні цих операцій 32-розрядний вміст регістрів АК і МЧ зсувається на відповідне число розрядів.

Під час короткого арифметичного зсуву вліво знак числа залишається На місці а в звільняються справа молодші розряди заносяться нулі. Зрушення вліво еквівалентний множенню числа на відповідний ступінь двійки.

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

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

При виконанні команди арифметичного зсуву вліво виробляється сигнал переповнення щоразу, коли за межі старшого розряду поля числа зсувається біт, значення якого від значення знакового біта.

Пропозиція 002-це команда подвійного арифметичного зсуву вправо з довжиною зсуву 32 біта.

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

У блоці 2 проводиться арифметичний зрушення вправо S, Y (при арифметичному зсуві вправо зберігається вміст знакового розряду), що розглядаються як єдине число, в якому S утворює його старші a Y - молодші розряди.

Збереження знакового розряду відрізняє арифметичні зрушення вправо в РШДП і РСДО. Стикувальні висновки крайній правій групи РСДВ2 підключені до схеми управління РСДО, яка забезпечує або в русі нулів праворуч при лівих зрушеннях, або перехід інформації з РСДО2 в РСДВ1 і назад при синхронній спільній роботі РСДО і РШДП.

В системі команд передбачені циклічні і арифметичні зрушення вмісту акумулятора на один розряд вліво і вправо.

Умовне графічне позначення К1800ВР8. Мікросхема виконує вісім операцій зсуву: арифметичний зрушення вліво і вправо, циклічний зсув вліво і вправо, зрушення вліво і вправо в додатковому коді блокування виходів, поширення знакового розряду по усіх виходах. Кожна операція зсуву задається за допомогою керуючих сигналів на семи входах мікросхеми. Структура мікросхеми дозволяє організувати пристрої зсуву необхідної розрядності.

Структурна схема К1800ВР8. Сдвігатель може виконувати вісім типів операцій: арифметичні зрушення вправо і вліво, циклічні зрушення вправо і вліво, зрушення вправо і вліво додатковим кодом, заповнення виходів значенням знакового розряду або одиницями.

У розглянуту групу включений повний набір команд логічного і арифметичного зсуву на одну або кілька позицій вправо (вліво), що визначається другим операндом. Коли другий операнд дорівнює одиниці (v 0), команди реалізують звичайні зрушення вправо (вліво) на одну позицію.

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