Добавил:
@wequalwo Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АбрамоваИванов0392_Лаб3.pdf
Скачиваний:
5
Добавлен:
08.09.2024
Размер:
69.38 Кб
Скачать

3.Выводы

Входе работы изучены способы программирования системных часов ПЭВМ, освоено программное управление звуком. К сожалению, не все пункты удалось выполнить на современном устройстве.

9

4. Зачетное задание

Любым алгоритмом генерации звука сгенерируйте через паузу два одинаковых по длительности звуковых импульса, но частота второго импульса должна быть в 2 раза выше.

Используемся способом 2. Код с комментариями приведен ниже

;Первый импульс

0100: MOV

AL,

B6

 

0101: OUT

[43],

AL

 

0104: MOV

AX,

FFFF

; начальное значение счетчика

0107: OUT

[42],

AL

 

0109: MOV

AL,

AH

 

010B: OUT

[42],

AL

 

010D: IN

AL,

[61]

 

010F: OR

AL,

03

 

0111: OUT

[61],

AL

; включение первого импульса

0113: MOV

AX, FFFF

; цикл для задержки импульса

0116: MOV

CX, FFFF

 

0119: LOOP

119

 

 

011B: DEC

AX

 

 

011C: JNZ

116

 

 

011E: IN

AL,

[61]

 

0120: AND

AL,

FC

 

0122: OUT

[61], AL

; выключние первого импульса

;Второй импульс

 

 

0124: MOV

AX,

7FFF

; частота в два раза больше

0127: OUT

[42], AL

 

0129: MOV

AL,

AH

 

012B: OUT

[42], AL

 

 

 

 

 

10

012D: IN

AL,

[61]

012F: OR

AL,

03

 

0131: OUT

[61], AL

 

0133: MOV

AX, FFFF

; цикл для задержки импульса

0136: MOV

CX, FFFF

 

0139: LOOP

139

 

 

013B: DEC

AX

 

 

013C: JNZ

136

 

 

013E: IN

AL,

[61]

0111: AND

AL,

FC

 

0111: OUT

[61], AL

 

0116: OUT

[61], AL

; выключение второго импульса

 

 

 

 

11