ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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 двійкових розряди на десяткову цифру, тобто в байті, призначеному для зберігання коду одного алфавітно-цифрового символу, можна розмістити коди двох десяткових цифр, або коди цифри і знаку, що удвічі скорочує об'єм пам'яті, необхідної для зберігання цих даних. Проте при виводі на друк або інші зовнішні носії інформації необхідно привести коди всіх символів до єдиного формату, оскільки інакше неможлива правильна їх інтерпретація з обліком тільки кодів байтів.
Таким чином, при байтовій організації пам'яті для зберігання одиниць числової і символьної інформації застосовують два формати, які умовно називаються упакований - по дві десяткові цифри в байті і зоновий - одна десяткова цифра (або знак) в байті. В останньому випадку двійковий код цифри (або знаку) прийнято розміщувати в правих чотирьох розрядах коду байта і називати цю його частину цифровою, а ліва частина байта при цьому містить спеціальний код зони, використовуваний як ознака цифрових даних, і називається зоновою частиною.