Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6855

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

233

є 1, якщо коди символів співпадають, і 0, якщо не співпадають. Операція ідентифікації виконується як операція порівняння двійкових кодів на збіжність, описана в п. 6.4.1.

  • Перевірка за маскою. Операція виконується з метою визначення відповідності коду досліджуваного символу X певній ознаці, що вказується кодом символу маски М. Вона передбачає перевірку збігу кодових розрядів символу X з кодовими розрядами символу маски М. Це дозволяє класифікувати код символу на приналежність до певної групи символів (наприклад, символи цифр, букв, спеціальних знаків і т. п.).

  • Порівняння символів. Порівняння символу X із заданим символом С дозволяє ви­значити відношення ваг кодів цих символів. Коди символів при цьому зазвичай розгля­даються як двійкові цілі числа без знаків (можливі й інші інтерпретації), і порівняння символів виконується як порівняння числових значень їх кодів, в результаті якого ви­значаються співвідношення X = С, Х>СіХ<С. Порівняння символів проводиться як операція визначення старшинства двійкових кодів, описана в п. 6.4.2.

  • Запис символу за маскою. Ця операція дозволяє змінювати код символу X згідно з кодом символу маски М шляхом видалення не вказаних (або, навпаки, вказаних) в коді символу маски двійкових розрядів коду символу X. Тобто запис символу за маскою за­безпечується вибірковим записом одиничних значень тільки тих кодових розрядів сим­волу X, яким відповідають одиничні значення розрядів коду символу маски М.

  • Запис зони байта. Ця операція є окремим випадком операції запису символу за маскою, вживаній при обробці кодів символів байтової структури. Операція дозволяє переслати код лівої (зонової) або правої (цифрової) частини символу X у відповідну час­тину іншого символу Y, тобто чотирьох правих і лівих двійкових розрядів коду X в ана­логічні розряди коду Y. Інша частина кодів Y і X не змінюється.

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

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

До операцій аналізу належать операції пошуку символу та перевірка за маскою. Операція пошуку символу дозволяє визначити наявність і місцезнаходження певного (заданого) символу в рядку. Операція завершується при виявленні першого шуканого символу в рядку, або закінченням посимвольної перевірки цього рядка, якщо шуканий символ відсутній в цьому рядку. Положення виявленого символу визначається порядко­вим номером символу в рядку або його адресою (при посимвольній системі адресації). Пошук виконується шляхом посимвольного порівняння кодів символів рядка з кодом заданого символу на виконання заданого відношення (=, >, <). Зазвичай передбачаються окремі операції пошуку для кожного з можливих відношень. Коди символів інтерпрету­ються як двійкові числа без знаків. Залежно від прийнятої системи кодування можливі й інші закони визначення ваг двійкових розрядів кодів символів. Результат виконан­ня операції відображається станом спеціального індикатора і вмістом регістра адреси пам'яті, відповідним адресі останнього звернення до чергового досліджуваного симво-


234

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

До операцій перетворення рядків символів належать операції компонування, реда­гування, перекодування та перетворення форматів байтів.

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

Редагування дозволяє видозмінити заданий рядок F (звичайно цей текст представ­ляє число, що зберігається для економії пам'яті в найбільш компактному вигляді) згідно з певним шаблоном S. Необхідність в такій зміні часто виникає при виведенні наборів різних змінних даних на друк згідно з формою 'їх відображення, що вимагає, наприклад, проставлення спеціальних знаків, записів, пояснень і т. п. Необхідні редакторські дії за­даються відповідними керуючими символами, що включаються в необхідній послідов­ності в рядок-шаблон, відповідно до якого і виконується операція редагування. Достат­ню гнучкість редагування забезпечують наступні операції над керуючими символами в рядку-шаблоні:

* заміна символів-заповнювачів в тексті шаблону символами рядка даних у порядку їх проходження (зазвичай зліва направо);

  • проставлення десяткової крапки (або коми) в заповнюваному числовим рядком контексті шаблону;

  • видалення незначущих нулів при заповненні контексту шаблону числовим ряд­ком (заміна 'їх пропусками);

  • вказівка місця початку значущості числових даних в контексті шаблону (для ви­ключення заданого раніше видалення незначущих нулів, починаючи з цього місця);

  • задання в рядку шаблону будь-яких послідовностей постійних текстових, число­вих даних або спеціальних символів;

  • вказівка кінця шаблону (якщо формат рядка шаблону не має постійної або змін­ної довжини).


Редагування цифрового рядка F здійснюється посимвольно зліва направо згідно з вмістом послідовності керуючих символів рядка шаблону S. В результаті виконання one-


235

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

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

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


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