
Архитектура компьютеров(3 курс 2 семестр) Савченко І.О. / Лабораторна робота №8 Використання переривань BIOS для роботи з дисковими накопичувачами
.docx
Лабораторна робота №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, прочитав стан принтерного порта,проініціалізував принтерний порт,надрукував символ.