м повинен обслужити даний пристрій:
Гј програмні - створюється програмами BIOS або DOS для виклику сервісних підпрограм.
Команда переривання
INT number
викликає підпрограми операційної системи. Ці переривання мають номери від 0 до FFh. Перед викликом команди INT, в регістр AX поміщають номер функції, який визначає необхідну підпрограму. Інші регістри теж можуть використовуватися в перериванні. p align="justify"> Пр оцессор виконує команду переривання, використовуючи таблицю векторів переривань. Таблиця векторів переривань займає самі нижні 1024 байти пам'яті. Кожен елемент таблиці - це 32-бітний адресу В«сегмент: зсувВ», який вказує на підпрограми операційної системи. Коли відбувається виклик команди INT процесор виробляє такі дії:
1. Параметр number повідомляє процесору місцезнаходження вектора в таблиці векторів переривань.
2. Процесор передає управління за вказаною у векторі переривань адресою процедури обробки переривання (ПОП).
. Підпрограма DOS або BIOS, розташована за вказаною адресою починає виконуватися і передає управління тому, коли буде досягнута команда IRET.
. Команда повернення з переривання IRET віддає управління викликає програмі, яка продовжує роботу з наступного за перериванням командою.
Практичні завдання.
У наведених нижче варіантах завдань використовується стандартне уявлення рядків ASCII. Зациклилися програму по введенню, ознакою закінчення роботи вважати введення порожнього рядка. p align="justify"> 1. Розробити підпрограму, яка визначає, чи міститься одна задана рядок в іншій заданої рядку, і якщо так, то, починаючи з якої позиції. Розробити програму, яка вводить з клавіатури два рядки і повідомляє, чи міститься одна з них в інший і скільки разів.
2. Розробити підпрограму, яка підраховує, скільки разів заданий символ зустрічається в рядку. Розробити програму, яка вводить з клавіатури рядок, вводить число N і видає список символів, які зустрічаються в рядку не менш ніж N разів.
. Розробити дві підпрограми, одна з яких сполучає два рядки в одну, а інша обрізає рядок до заданої довжини (або доповнює пробілами, якщо довжина рядка менше заданої).
. Розробити програму, яка вводить з клавіатури число N, потім вводить кілька рядків (кінець введення - порожній рядок) і формує новий рядок, що складається з перших N символів кожної введеної рядка.
. Розробити дві підпрограми, одна з яких порівнює два рядки по лексикографічного порядку, а інша обмінює значення двох рядків. Розробити програму, яка вводить з клавіатури кілька рядків (кінець введення - порожній рядок) і сортує їх у лексикографічному порядку.
. Розробити підпрограму, яка розбиває задану рядок на дві частини: перше слово рядка (до першого пробілу) і залишок рядка (пробіли після першого слова відкидаються). Розробити програму, яка вводить з клавіатури рядок і виводить кожне слово з нового рядка.
. Розробити підпрограму, яка переставляє символи заданої рядки у зворотному порядку. Розробити програму, яка вводить з клавіатури рядок і переставляє в зворотному порядку символи в кожному слові (слова розділяються пробілами).
. Розробити підпрограму, яка вставляє підрядок в рядок, починаючи з заданої позиції.
. Розробити програму, яка вводить з клавіатури вихідну рядок, вводить підрядок і позицію вставки, вставляє підрядок в рядок.
. Розробити дві підпрограми, одна з яких перетворює будь-яку задану букву в заголовну (у тому числі для російських букв), а інша - перетворить букву в рядкову.
. Розробити програму, яка вводить з клавіатури рядок і замінює перші літери всіх слів на заголовні, а інші літери - на рядкові.
12. Дано натуральне число п. Вивести на екран всі прості числа з відрізка [1, п].
13. Обчислити b = 5 3 + (а +1) -1 . Для обчислення х n викори...