3.Выводы
Входе работы изучены способы программирования системных часов ПЭВМ, освоено программное управление звуком. К сожалению, не все пункты удалось выполнить на современном устройстве.
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 |
|
|
|
|
|