Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2007
Тип роботи:
Розрахунково - графічна робота
Предмет:
Інші
Група:
КН-24
Варіант:
9

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра САПР Розрахунково-графічна робота Виконав: студент групи КН-24 Прийняв: Мазур В. В. Львів – 2007 Варіант № 9 Теоретичне завдання №1 Програмні переривання (застосування на прикладах) Переривання є операцією, яка припиняє виконання програм для спеціальних системних дій. Необхідність переривань обумовлено двома основними причинами: навмисний запит таких дій, як операції введення-виводу на різні пристрої і непередбачені програмні помилки (наприклад, переповнювання при діленні). Система BIOS (Basic Input/Output System) знаходиться в ROM і управляє всіма перериваннями в системі. У комп'ютерах IBM РС ROM знаходиться за адресою FFFF0H. При включенні комп'ютера процесор встановлює стан скидання, виконує контроль парності, встановлює в регістрі CS значення FFFFH, а в регістрі IP - нуль. Перша виконувана команда тому знаходиться за адресою FFFF:0 або FFFF0, що є точкою входу в BIOS. BIOS перевіряє різні порти комп'ютера для визначення і ініціалізації підключених пристроїв. Потім BIOS створює на початку пам'яті (за адресою 0) таблицю переривань, яка містить адреси обробників переривань, і виконує дві операції INT 11H (запит списку приєднаного устаткування) і INT 12H (запит розміру фізичної пам'яті). Наступним кроком BIOS – це визначення чи є на диску або дискеті операційна система DOS. Якщо виявлена системна дискета, то BIOS виконує переривання INT 19H для доступу до першого сектора диска, що містить блок початкового завантаження. Цей блок є програмою, яка зчитує системні файли IBMBIO.COM, IBMDOS.COM і COMMAND.COM з диска в пам'ять. Після цього пам'ять має наступний розподіл: Таблиця векторів переривань Дані BIOS IBMBIO.COM і IBMDOS.COM Резидентна частина COMMAND.COM Доступна пам'ять для прикладних програм Транзитна частина COMMAND.COM Кінець RAM (ОЗУ) ROM BASIC ROM BIOS Зовнішні пристрої передають сигнал уваги через контакт INTR в процесор. Процесор реагує на цей запит, якщо прапор переривання IF встановлений в 1 (переривання дозволене), і (в більшості випадків) ігнорує запит, якщо прапор IF встановлений в 0 (переривання заборонене). Операнд в команді переривання, наприклад, INT 12H, містить тип переривання, який ідентифікує запит. Для кожного типу система містить адресу в таблиці векторів переривань, що починається за адресою 0000. Оскільки в таблиці є 256 чотирьохбайтових елементів, то вона займає перші 1024 байти пам'яті від шестизначного 0 до шестизначного 3FF. Кожен елемент таблиці указує на підпрограму обробки вказаного типу переривання і містить адресу кодового сегменту і зсув, які при перериванні встановлюються у регістри CS і IP відповідно. Переривання заносить в стек вміст регістра прапора, регістра CS і регістра IP. Наприклад, для переривання 12H (яке повертає в регістрі AX розмір пам'яті) адреса елементу таблиці рівна шестизначному 0048 (шестизначне 12 х 4 = шестизначне 48). Операція виділяє чотирьохбайтовий елемент за адресою шестизначного 0048 і заносить два байти в регістр IP і два байти в регістр SS. Адреса, яка виходить в регістровій парі CS:IP, є адресою початку підпрограми в області BIOS, яка отримує управління. Повернення з цієї підпрограми здійснюється командою IRET (Interrupt Return), яка відновлює прапори і регістри CS і IP із стека і передає управління на команду, наступну за виконаною командою переривання. Адреса Функція переривань (шестизначна) (шестизначна.) 0-3 0 Ділення на нуль 4-7 1 Покроковий режим (трасування DEBUG) 8-B 2 Немасковане переривання (NMI) C-F 3 Точка зупинки (використовується в DEBUG) 10-13 4 Переповнювання регістра 14-17 5 Друк екрану 18-1F 6,7 Зарезервоване 20-23 8 Сигнал від таймера 24-27 9 Сигнал від клавіатури 28-37 A,B,C,D Використовуються в комп'ютерах AT 38-3B E Сигнал від дискетного дисковода 3C-3F F Використовується для принтера 40-43 10 Управління дисплеєм 44-47 11 Запит устаткування 48-4B 12 Запит розміру пам'яті 4C-4F 13 Дискові операції введення-виводу 50-53 14 Управління комунікаційним адаптером 54-57 15 Касетні операції і спеціальні функції AT 58-5B 16 Введення з клавіатури 5C-5F 17 Вивід на принтер 60-63 18 Звернення до BASIC, вбудованому в ROM 64-67 19 Перезапуск системи 68-6B 1A Запиту і установка часу і дати 6C-6F 1B Переривання від клавіатури 70-73 1C Переривання від таймера 74-77 1D Адреси таблиці параметрів дисплея 78-7B 1E Адреси таблиці параметрів дисковода 7C-7F 1F Адреси таблиці графічних символів 80-83 20 Нормальне завершення програми (DOS) 84-87 21 Звернення до функцій DOS 88-8B 22 Адреса обробки завершення завдання (DOS) 8C-8F 23 Адреса реакції по Ctrl/Break (DOS) 90-93 24 Адреса реакції на фатальну помилку (DOS) 94-97 25 Абсолютне читання з диска (DOS) 98-9B 26 Абсолютний запис на диск (DOS) 97-9F 27 Створення резидентної програми (DOS) AO-FF 28-3F Інші функції DOS 100-1FF 40-7F Зарезервоване 200-217 80-85 Зарезервовано для BASIC 218-3C3 86-F0 Використовуються BASIC-інтерпретатором 3C4-3FF F1-FF Зарезервоване INT 05H. Друк екрану. Виконує виведення вмісту екрану на друкуючий пристрій. Команда INT 05H виконує дану операцію з програми, а натиснення клавішею Ctrl/PrtSc - з клавіатури. Операція забороняє переривання і зберігає позицію курсора. INT 10H. Управління дисплеєм. Забезпечує екранні і клавіатурні операції. INT 11H. Запит списку приєднаного устаткування. Визначає наявність різних пристроїв в системі результуюче значення повертає в регістрі AX. При включенні комп'ютера система виконує цю операцію і зберігає вміст AX в пам'яті по адресі шест.410. Значення бітів в регістрі AX: Біт Пристрій 15,14 Число підключених принтерів. 13 Послідовний принтер. 12 Ігровий адаптер. 11-9 Число послідовних адаптерів стику RS232. 7,6 Число діськетних дисководів, при біті 0=1: 00=1, 01=2, 10=3 і 11=4. 5,4 Початковий відео режим: 00 = не використовується 01 = 40х25 плюс колір 10 = 80х25 плюс колір 11 = 80х25 чорно-білий режим. 1 Значення 1 говорить про наявність співпроцесора. 0 Значення 1 говорить про наявність одного або більш дискових пристроїв і завантаження операційної системи. INT 12H Зпит про розміру фізичної пам'яті. Повертає в регістрі AX розмір пам'яті в кілобайтах, наприклад, шест.200 відповідає пам'яті в 512 До. Дана операція корисна для вирівнювання розміру програми відповідно до доступної пам'яті. INT 13H. Дискові операції введення-виводу. Забезпечує операції введення-виводу для дискет і вінчестера. INT 14H. Управління комутаційним адаптером. Забезпечує послідовне уведення-виведення через комунікаційний порт RS232. Регістр DX повинен містити номер (0 або 1) адаптера стику RS232. Чотири типи операції, визначувані регістром AH виконують прийом і передачу символів і повертають в регістрі AX байт стани комунікаційного порту. INT 15H. Касетні операції введення-виводу і спеціальні функції для комп'ютерів AT. Забезпечує операції введення-виводу для касетного магнітофона, а також розширені операції для комп'ютерів AT. INT 16H. Уведення з клавіатури. Забезпечує три типи команд введення з клавіатури, детально описані в гл.9. INT 17H. Вивід на принтер. Забезпечує виведення даних на друкуючий пристрій. INT 18H. Звернення до BASIC, вбудованому в ROM. Викликає BASIC-інтерпретатор, що знаходиться в постійній пам'яті ROM. INT 19H. Перезапуск системи. Дана операція при доступному диску прочитує сектор 1 з доріжки 0 в область початкової завантаження в пам'яті (сегмент 0, зсув 7C00) і передає управління по цій адресі. Якщо дисковод не доступний, то операція передає управління через INT 18H в ROM BASIC. Дана операція не очищає екран і не ініціалізував дані в ROM BASIC, тому її можна використовувати з програми. INT 1AH. Запит і встановлення поточного часу і дати. Прочитує і записує свідчення годинника в відповідності із значенням в регістрі AH. Для визначення тривалості виконання програми можна перед початком виконання встановити годинник в 0, а після рахувати поточний час. Відлік часу йде приблизно 18,2 разу в секунду. Значення в регістрі AH відповідає наступним операціям: INT 1FH. Адреса таблиці графічних символів. У графічному режимі є доступ до символів з кодами 128-255 в 1К таблиці, що містить по вісім байт на кожен символ. Прямій доступ в графічному режимі забезпечується тільки до перших 128 ASCII-символам (від 0 до 127). Нижче приведені найбільш основні з переривань DOS: INT 20H. Завершення програми. Запит завершує виконання програми і передає управління в DOS. Даний запит зазвичай знаходиться в основній процедурі. INT 21H. Запит функцій DOS. Основна операція DOS що викликає певну функцію відповідно до коду в регістрі AH. Призначення функцій DOS описане в наступному розділі. INT 22H. Адреса підпрограми обробки завершення завдання. INT 23H. Адреса підпрограми реакції на Ctrl/Break. INT 24H. Адреса підпрограми реакції на фатальну помилку. У цьому елементі і в двох попередніх містяться адреси, які ініціалізувалися системою в префіксі програмного сегменту і, які можна змінити для своїх цілей. INT 25H. А Абсолютне читання з диску. INT 26H. Абсолютний запис на диск. INT 27H. Завершення програми, залишаючи її, резидетною. Дозволяє зберегти COM-програму в пам'яті. Як приклад я наведу функції переривання DOS INT 21H. Нижче приведені базові функції для переривання DOS INT 21H. Код функції встановлюється в регістрі AH: 00 Завершення програми (аналогічно INT 20H). 01 Введення символу з клавіатури з луною на екран. 02 Виведення символу на екран. 03 Введення символу з асинхронного комунікаційного каналу. 04 Виведення символу на асинхронний комунікаційний канал. 05 Виведення символу на друк. 06 Пряме введення з клавіатури і вивід на екран. 07 Введення з клавіатури без луни і без перевірки Ctrl/Break. 08 Введення з клавіатури без луни з перевіркою Ctrl/Break. 09 Виведення рядка символів на екран. 0А Введення з клавіатури з буферизацією. 0В Перевірки наявності введення з клавіатури. 0С Очищення буфера введення з клавіатури і запит на введення. 0D Скидання диска. 0Е Установки поточного дисковода. 0F Відкриття файлу через FCB. 10 Закриття файлу через FCB. 11 Початковий пошук файлу за шаблоном. 12 Пошук наступного файлу за шаблоном. 13 Видалення файлу з диска. 14 Послідовне читання файлу. 15 Послідовний запис файлу. 16 Створення файлу. 17 Перейменування файлу. 18 Внутрішня операція DOS. 19 Визначення поточного дисковода. 1А Установки області передачі даних (DTA). 1В Отримання таблиці FAT для поточного дисковода. 1С Отримання FAT для будь-якого дисковода. 21 Читання з диска з прямим доступом. 22 Запис на диск з прямим доступом. 23 Визначення розміру файлу. 24 Установка номера запису для прямого доступу. 25 Установка вектора переривання. 26 Створення програмного сегменту. 27 Читання блоку записів з прямим доступом. 28 Запис блоку з прямим доступом. 29 Перетворення імені файлу у внутрішні параметри. 2А Отримання дати (CX-рік, DН-місяць ,DL-день). 2В Установки дати. 2С Отримання часу (CH-час,CL-мин,DН-с,DL-1/100с). 2D Установки часу. 2Е Установки/відміни верифікації запису на диск. Наступні розширені функції можливі в DOS починаючи з версії 2.0: 2F Отримання адреси DTA в регістровій парі ES:BX. 30 Отримання номера версії DOS в регістрі АХ. 31 Завершення програми, після якого вона залишається резидентною в пам'яті. 33 Перевірка Ctrl/Break. 35 Отримання вектора переривання (адреси підпрограми). 36 Отримання розміру вільного простору на диску. 38 Отримання державно залежних форматів. 39 Створення підкаталогу (команда MKDIR). ЗА Видалення підкаталогу (команда RMDIR). 3В Установки поточного каталога (команда CHDIR). 3C Створення файлу без використання FCB. 3D Відкриття файлу без використання FCB. 3E Закриття файлу без використання FCB. 3F Читання з файлу або введення з пристрою. 40 Запис у файл або вивід на пристрій. 41 Видалення файлу з каталога. 42 Установка позиції для послідовного доступу. 43 Зміна атрибутів файлу. 44 Управління введенням-виводом для різних пристроїв. 45 Дублювання файлового номера. 46 "Склеювання" дубльованих файлових номерів. 47 Отримання поточного каталога. 48 Виділення пам'яті з вільного простору. 49 Звільнень виділеної пам'яті. 4А Зміни довжини блоку виділеної пам'яті. 4В Завантаження/виконання програми (підпроцесу). 4С Завершення підпроцесу з поверненням управління. 4D Отримання коду завершення підпроцесу. 4Е Початковий пошук файлу за шаблоном. 4F Пошуку наступного файлу за шаблоном. 54 Отримання стану верифікації. 56 Перейменування файлу. 57 Отримання/установка дати і часу зміни файлу. Теоретичне завдання №2 Робота з годинником реального часу Починаючи з IBM PC, персональні комп’ютери мають два пристрої для роботи з процесорами – годинник реального часу (RTC) і сам системний таймер. Годинник реального часу отримує живлення від акумулятора на материнській платі і працює навіть тоді, коли комп’ютер вимкнений. Цей пристрій можна використовувати для визначення/встановлення поточних дати і часу, встановлення будильника з ціллю виконання яких-небудь дій і для викликання переривання IRQ8 (INT 4Аh) кожну мілісекунду. Системний таймер використовується одночасно для управління контролером прямого доступу до пам’яті, для управління динаміком і як генератор імпульсів, що викликає переривання IRQ0 (INT 8h) 18,2 рази в секунду. Таймер надає багаті можливості для програмування на рівні портів вводу-виводу, але на рівні DOS і BIOS і годинник реального часу, і системний таймер використовується тільки як засіб визначення/встановлення поточного часу і організації затримок. Функція DOS 2Сh – Визначити час Ввід: AX = 2Ch Вивід: CH = година CL = хвилина DH = секунда DL = сота доля секунди Ця функція використовує системний таймер, так що година змінюється тільки 18,2 рази в секунду і число в DL збільшується зразу на 5 чи 6. Функція DOS 2Dh – Встановити час Ввід: AH = 2Dh CH = година CL = хвилина DH = секунда DL = сота доля секунди Вивід: AL = FFh, якщо введено неіснуючий час, AL = 00h, якщо час встановлений Функція 2Dh встановлює одночасно як внутрішній годинник DOS, які управляють системним таймером і обновляються 18,2 рази в секунду, так і годинником реального часу. Задача №1 Написати і оформити згідно вимог програму на Асемблері для рисування вказаним кольором прямокутника заданого розміру у певній точці екрану (задані координати лівої верхньої вершини) з використанням циклів. Ширина 35 Висота 20 Колір 14 X 90 Y 60 Текст програми title Zavd1 sseg segment stack db 100h dup(0) sseg ends dseg segment 'data' er db 'Error !!!!!!!!!!$' s2 db 'sd$' dseg ends code segment 'code' assume ss:sseg,ds:dseg,cs:code jmp main main proc far mov ax,dseg mov ds,ax mov ah,0Fh int 10h push ax call vgaint call rac mov ah,10h int 16h pop ax mov ah,00h int 10h ex: mov ax,4c00h int 21h error: mov ah,09h mov dx,offset er int 21h jmp ex main endp vgaint proc near mov ah,00h mov al,12h int 10h mov ah,0bh mov bx,00001h int 10h ret vgaint endp rac proc near mov cx,20 c1: mov ah,0ch mov bh,0 mov dx,60 mov al,14h int 10h mov dx,140 int 10h inc cx cmp cx,90 jne c1 mov dx,60 c2: mov ah,0ch mov bh,0 mov cx,20 mov al,14h int 10h mov cx,90 int 10h inc dx cmp dx,140 jne c2 ret rac endp code ends end Задача №2 Написати програму перекодування тексту (малі букви у великі). ;=====Made by Roman Zarichnyi===== title case Zavdannja2 CSEG segment assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG org 100h Start: call main mov ah,9 mov dx,offset radok int 21h main proc lea bx,radok mov cx,16 sv1: mov ah,[bx] cmp ah,61h jb sv2 cmp ah,7Ah ja sv2 and ah,11011111b mov [bx],ah sv2: inc bx loop sv1 ret radok db 'My name is Roman$' main endp CSEG ends end Start
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!