Добавил:
kick.com Заведующий методическим кабинетом, преподаватель на кафедре компьютерного спорта и прикладных компьютерных технологий. Образование - Магистр Спорта. Суета... Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура компьютеров(3 курс 2 семестр) Савченко І.О. / Лабораторна робота №8 Використання переривань BIOS для роботи з дисковими накопичувачами

.docx
Скачиваний:
0
Добавлен:
18.09.2025
Размер:
60.64 Кб
Скачать

Лабораторна робота №8

Використання переривань BIOS для роботи з дисковими накопичувачами

1.Мета роботи: Отримати практичні навички роботи з дисковими накопичувачами, паралельними портами та принтером,підключеним до нього.

2.Завдання:

2.1 Використовуючи відповідні переривання int 13h,виконати скидання та отримати поточний стан накопичувачів,прочитати сектор диску,виконати перевірку секторів,формування доріжок,ініціалізувати та отримати параметри дискового накопичувача,перевірити тип накопичувача,змінити стан дискети,встановити тип дискети та тип носія перед форматуванням.

2.2 Використовуючи відповідні функції переривання int 17h, прочитати стан принтерного порта,проініціалізувати принтерний порт,надрукувати символ.

3.Хід роботи:

Викликати програму DEBUG та використовуючи її внутрішню команду –а,занести у пам`ять комп`ютера та виконати команди з використанням переривань ,необхідні для використання операцій

-Використовуючи фунцію 00h переривання int13h виконати скидання стану накопичувача.Зафіксувати стани прапорів та отримати можливий код помилки в регістрі АН.

-Використовуючи функцію 01h переривання int13h,прочитати стан диску,зафіксувати значення прапорців та коди,повернуті в регістри АН та AL.

-За допомогою функції 02h прочитати сектор диску в область пам`яті та виконати перевірку готовності дискети.Зафіксувати стан прапорців CF та можливий код помилки AH.

-Використовуючи функцію 04h переривання int13h, виконати перевірку контрольних сум CRC секторів диску.Зафіксувати стан прапорця CF та можливий код помилки AH.

-Використовуючи фукцію 08h переривання int13h отримати та розшифрувати параметри дискового накопичувача.Код стану повертається в АН.Зафуксувати стан прапорця CF.

-Використовуючи функцію 09h переривання int13h проініціалізувати накопичувач,зафіксувати стан CF та код стану в регістрі AH.Використовуючи функцію 15Н переривання int13h перевірити тип накопичувача,отримати та розрахувати код в регістрі АН.

-За домомогою функції 16h переривання int13h виконати виявлення зміни дискети.

-Розшифрувати отриманий код АН.Зафіксуватти стан прапорця CF.

-Використовуючи функцію 17h переривання int13h встановити тип дискети 1.44 мб в дисководі 1.44 мб,зафіксувати стан CF та код стану в АН.

-Використовуючи функцію 18h переривання int13h встановити тип носія перед форматуванням.Зафіксувати CF,AH.

-Використовуючи функцію 02h переривання int17h прочитати стан переміщеного порта.Зафіксувати код стану порта що повертається в АН.

-Використовуючи функцію 01h переривання int17h проініціалізвути принтерний порт.Зафіксувати байт стану АН.

-Використовуючи функцію 00h переривання int17h надрукувати довільний символ.Розшифрувати розширенний байт пам`яті в АН.

1.Використовуючи функцію 00h переривання int13h скинути стан накопичувача.Зафіксувати стани прапорців та отримати можливий код помилки в регістрі.

.model small

.data

.code

begin:

mov ah,00h

mov dl 80h

int 13h

end begin

CF0

2.За домопогою функції 01h переривання int13h,прочитати стан диску,зафіксувати значення прапорців та коди,повернуті в регістри АН,AL.

.model small

.data

.code

begin:

mov ah,01h

mov dl,80h

int 13h

end begin

AL 00

3.За допомогою функції 02h прочитати один сектор диску в область пам`яті ота виконати перевірку готовності дискети.Зафіксувати стан прапорця CF та можливий код помилки АН.

.model small

.data

.code

begin:

sector db,512dup(?)

mov ah,04

mov dl,80H

cf 00

4.Використовуючи фунцію 04h переривання int13h,перевірити контрольну суму CRC секторів диску. Зафіксувати стан прапорця CF та можливий код помилки АН.

.model small

.data

.code

begin:

mov ah,08h

mov dl,80h

int 13h

end begin

5.Викостовуючи фунцію 09h переривання int13h,проініціалізувати накопичувач,зафіксувати стан CF та код стану в регістрі АН.Використовуючи функцію 15Н перериівання int13h перевірити тип накопичувача,отримати та розрахувати код в регістрі АН.

.model small

.data

.code

begin:

mov ah,15h

mov dl,80h

int 13h

end begin

сf 00 ah 03h

6. За допомогою функції 16h переривання int13h,виявити зміни дискети. Розшифрувати отриманий код АН. Зафіксувати стан прапорця CF

.model small

.data

.code

begin:

mov ah,17h

mov dl,80h

mov al,05h

int 13h

end begin

сf 0

7. Викостовуючи фунцію 17h переривання int13h,встановити тип дискети 1.44 мб в дисководі 1.44 мб,зафіксувати стан CF та код стану в АН.

.model small

.data

.code

begin:

mov ah,18h

mov ch,08

mov dl,80h

mov al,05h

int 13h

end begin

сf 00

8. Використовуючи функцію 02h переривання int17h прочитати стан переміщеного порта.Зафіксувати код стану порта що повертається в АН.

.model small

.data

.code

begin:

mov ah,02

mov dx,00

int 17h

Test ah,00101001b

end begin

9. Використовуючи функцію 01h переривання int17h проініціалізвути принтерний порт.Зафіксувати байт стану АН.

.model small

.data

.code

begin:

mov ah,01h

mov dx,00

int 17h

end begin

10.Використовуючи функцію 00h переривання int17h надрукувати довільний символ.Розшифрувати розширенний байт пам`яті в АН.

.model small

.data

.code

begin:

mov ah,00

mov al, a

mov dx,00

int 17h

end begin

Висновок: в ході виконання лабораторної роботи я отримав практичні навички роботи з дисковими накопичувачами, паралельними портами та

принтером,підключеним до нього. Використовуючи відповідні переривання int 13h,виконав скидання та отримання поточного стану накопичувачів,прочитав сектор диску,виконав перевірку секторів,формування доріжок,ініціалізував та отримав параметри дискового накопичувача,перевірив тип накопичувача,змінив стан дискети,встановив тип дискети та тип носія перед форматуванням.

Використовуючи відповідні функції переривання int 17h, прочитав стан принтерного порта,проініціалізував принтерний порт,надрукував символ.