Page 86 - 149
P. 86

Команда LEA забезпечує програмну доступність виконавчої адреси. Вона
                  дозволяє  організувати  доступ  до  елементів  складних  структур  даних
                  (наприклад,  багатомірних  масивів).  Команди  LDS  і  LES  забезпечують
                  завантаження  покажчиків  і  особливо  ефективні  для  підготовки  обробки
                  рядкових даних.  Адресація регістрів зовнішніх пристроїв  у  командах вводу-

                  виводу  може  бути  пряма  (у  межах  перших  256  регістрів)  і  опосередкована
                  через  регістр  DX.  Тим  самим,  з  одного  боку,  досягається  сумісність  із  МП
                  КР580ИК80,  а  з  іншого  боку  -завдяки  непрямої  адресації  підвищується
                  гнучкість адресації зовнішніх пристроїв.
                        Команда перекодування XLAT дозволяє опрацьовувати таблиці розміром
                  256  байтів.  Початок  таблиці  в  сегменті  даних  вказується  в  регістрі  ВХ.
                  Команда виконує пересилку в AL байта таблиці, що знаходиться за номером в
                  регістрі AL. При відповідній підготовці таблиці забезпечується перетворення
                  символьних рядків, наприклад із коду КОИ-7 у код ДКОИ і т.д.
                         Арифметичні  команди  (додавання,  віднімання,  додавання  і  віднімання
                  спрощеного  формату,  множення,  ділення  і  перетворення  форматів  даних)
                  призначені       для    виконання       основних       арифметичних         операцій      над
                  порядковими,  цілими  і  двійково-десятковими  числами.  Алгоритми  команд

                  подані  в  табл.4.16. Команди  віднімання  і  додавання  (за  винятком  команд
                  корекції)  встановлюють  ознаки  результату.  Команди  INC  і  DEC  залишають
                  без  зміни  ознаку  переносу.  Команди  ADC  і  SBB  забезпечують  виконання
                  додавання  і  віднімання  багатобайтових  чисел.  Порядкові,  цілі  і  двійково-
                  десяткові  числа  обробляються  тими  самими  командами  додавання  і
                  віднімання.
                         Щоб  одержати  правильний  результат  для  двійково-десяткових  чисел,
                  необхідно  зробити  корекцію.  З  цією  метою  у  випадку  додавання  для
                  розпакованих чисел служить команда ААА, для упакованих - команда DAA.
                  Корекція  відбувається,  якщо  в  результаті  двійкового  додавання  в  тетраді
                  утворилося  число  більше  9  або  виникло  перенесення  в  наступну  тетраду,
                  тобто  результат  додавання  двох  десяткових  цифр  більше  16.  У  першому
                  випадку  необхідно  відняти  з  тетради  10,  у  другому  -  додати  в  тетраду  6.
                  Оскільки віднімання з тетради рівносильне додаванню б, то в обох випадках
                  для  корекції  результату  додають  6.  При  корекції  розпакованих  чисел
                  опрацьовується  тільки  молодша  тетрада,  а  старша  обнулюється.  Байт,  що
                  коректується,  розташовується  в  регістрі  AL.  Якщо  була  необхідність
                  додавання 6, то це свідчить про перенос у старший десятковий розряд, тому
                  ознака  CF  встановлюється  в  1.  Крім  того,  до  регістра  АН  добавляється      1.
                  Тим    самим    підвищуються    зручності      опрацювання  багаторозрядних
                  двійково-десяткових чисел.
                        У випадку упакованих двійково-десяткових чисел спочатку відповідно до
                  розглянутого  способу  опрацьовується  молодша  тетрада.  Якщо  після
                  додавання числа 6 виникає перенос, то він складається зі старшою тетрадою,
                  що потім опрацьовується.




                                                                                                               87
   81   82   83   84   85   86   87   88   89   90   91