1   2   3   4   5   6
Ім'я файлу: 153_____ (2).doc
Розширення: doc
Розмір: 320кб.
Дата: 30.01.2020
скачати

ПРАКТИЧНА ЧАСТИНА

1.Використані переривання


При написанні програми на мові асемблер було використано наступні переривання:

переривання INT 21h (переривання DOS)

  • Функція 09h – виводить рядок на стандартний пристрій виводу, що закінчується символом $. Адреса рядка знаходиться в парі регістрів DS : DX.

  • Функція 4Ch – функція яка завершує роботу програми

  • Функція 716С – створює новий або відкриває існуючий файл. В BX = Режим доступу (0 — читання, 1 — запис, 2 — читання/запис), СХ = Атрибути (0 — звичайний, 1 — тільки для читання, 2 — прихований, 3 — системний, 8 — ім'я тому, 20h — архівний), DX = Дія (1 — відкриття, 2 — усікання, 2 — створення). Якщо операція завершилася аварійно CF = 1 і АХ = код помилки.

  • Функція 3Fh– Читає масив байтів із файлу або пристрою. АН = 3Fh, ВХ = Дескриптор файлу або пристрою(0 = клавіатура),СХ = Максимальна кількість байтів для читання. DS:DX = Адреса вхідного буфера. Повертає - АХ = Кількість реально прочитаних байтів.

  • Функція 40h– Зсписує масив байтів в файл. Читає масив байтів із файлу або пристрою. АН = 3Fh, ВХ = Дескриптор файлу, СХ = Максимальна кількість байтів для записування. DS:DX = Адреса вихідного буфера. Повертає - АХ = Кількість реально записаних байтів.

  • Та інші (41h, 42h, 56h…)

переривання INT 10h

  • Функція 00h встановлення відео режиму. В AL = номер відео режиму.

  • Функція 02h переміщення курсору у вказану позицію. АН = 02h, DH, DL = номер рядка і стовпця, ВН = номер відео сторінки.

  • Функція 07h Прокручує вікно вниз. АН = 07h,AL = кількість рядків для прокрутки (0 — все), ВН = значення байта атрибуту для заповнення порожніх рядків, СН, CL = номер рядка і стовпця, відповідних координаті верхнього лівого кута вікна, DH, DL = номер рядка і стовпця, відповідних координаті нижнього правого кута вікна.

переривання INT 16h

  • Функція 00h читає символ. Дана функція переміщує в регістр AL наступний ASCII символ, введений з клавіатури, і встановлює скан-код в регістрі AH. У випадку, якщо на клавіатурі натиснута одна із спеціальних клавіш, наприклад, Номе або F1, то в регістр AL заноситься 00.

2.Основні процедури


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

Destr – викликається при виході з програми. Процедура закриває всі відкриті файли.

About – виводить на екран дані про програму.

PrintStat – виводить статистику.

PrintPhones – основною задачею даної процедури це переходження програми в режим перегляду каталогу телефонів

PrevPhone, NextPhone – процедури для переходу на попередній та наступний телефон у каталозі.

ViewPhone – здійснює пошук у каталозі за вказаною моделлю телефона. Якщо телефон знайдеться то процедура випише всі характеристики телефону в протилежному випадку програма напише повідомлення «Телефон не знайдено»

AddPhone – процедура для добавлення нового телефону в каталог. При її виклику здійснюється перевірка на можливість добавлення в зв’язку з обмеженістю каталогу в 1100 телефонів. Якщо ж користувач викликав її помилково то він може відмінити добавлення нового телефону.

EditPhoneпроцедура для редагування, аналогічно з попередньою процедурою після виклику якої можна відмінити редагування запису.

RemovePhone – процедура для видалення з каталогу телефону.

OpenFiles – завдання даної процедури це відкриття/створення необхідних файлів для програми.

CloseFiles – закриває всі відкриті файли.

ReadPhone – одна із основних процедур програми. За вказаним індексом процедура зчитує дані про телефон у відповідні змінні в програмі.

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

AddEditPhone – відповідає за введення даних які необхідно записати в файл при добавленні/редагуванні телефону.

SearchPhoneProc – пошук в файлі. Дана процедура здійснює послідовний пошук в файлі. При спів паданні шуканого телефону із прочитаним в файлі, процедура повертає в регістр AX = 1,а в змінну vPhoneInd= номер запису в файлі. Якщо по заданим критеріям не знайдено ні одного запису, то в AX = 0.

ReadString20 – процедура яка дає можливість вводу користувачеві рядка символів довжиною до 20 символів.

ReadInt10 – аналогічна до попередньої тільки накладається умова що всі символи повинні бути цифрами. І максимальна довжина 10 розрядів.

1   2   3   4   5   6

скачати

© Усі права захищені
написати до нас