
- •Введение
- •Цели и задачи курса
- •1. Общие сведения о вычислительных машинах и вычислительных системах
- •1.1. Основные понятия и определения
- •1.2. Классификация эвм по назначению и типу
- •1.3. Типы эвм
- •1.4. Основные принципы организации вычислительных машин и систем
- •1.5. Основные характеристики вычислительных машин и систем
- •1.5.1 Стоимость и цена аппаратного обеспечения
- •1.5.2. Производительность вычислительных машин и систем
- •Контрольные вопросы
- •2. Фукциональный состав и назначение основных устройств вм
- •2.2. Назначение шин, шина с тремя состояниями
- •2.3. Назначение устройств ввода-вывода, способы информационного обмена
- •Контрольные вопросы
- •3. Организация процессоров
- •3.1. Введение в функциональную организацию процессора
- •3.2. Операционный блок
- •3.3. Блок управления
- •3.4. Устройства управления процессора
- •3.4.1. Классификация уу
- •3.4.2. Аппаратные уу
- •3.4.3. Микропрограммные уу
- •3.5. Интерфейсный блок
- •3.6. Назначение стека
- •Контрольные вопросы
- •4. Система команд и адресация данных
- •4.1. Группы команд
- •4.2. Адресация операндов
- •4.3. Методы адресации
- •5. Память вычислительных машин
- •5.1. Иерархическая организация системы памяти
- •5.2. Иерархическая структура зу
- •5.3. Основные характеристики зу
- •5.4. Организация связи оп с процессором
- •5.5. Ассоциативные зу
- •Контрольные вопросы
- •6. Принципы обмена данными в вычислительных машинах. Интерфейсы вычислительных машин, организация прерываний
- •6.1. Шины
- •6.1.1. Синхронная шина
- •6.1.2. Пересылка данных за несколько тактов
- •6.1.3. Асинхронные шины
- •6.1.4. Заключительные замечания
- •6.2. Назначение и классификация шинных интерфейсов
- •6.3. Организация и обмен данными между периферийными устройствами и вычислительным ядром системы
- •6.4. Организация прерываний
- •6.4.1. Программные прерывания
- •Команда int
- •6.4.2. Обработка прерываний
- •6.4.3 Таблица векторов прерываний
- •6.4.4. Запуск обработчиков прерываний
- •6.5. Последовательная передача данных
- •7. Вычислительные системы параллельной обработки данных
- •7.1. Параллельная обработка как архитектурный способ повышения производительности
- •7.2. Параллелизм и конвейеризация – способы параллельной обработки данных
- •7.2.1. Параллельная обработка данных (параллелизм)
- •7.2.2. Конвейеризация
- •7.3. Классификация архитектур вычислительных систем
- •7.4. Мультипроцессоры и мультикомпьютеры
- •7.5. Классификация мультипроцессорных систем по способу организации основной памяти
- •7.6. Закон Амдала (эффективность параллельных программ)
- •8. Компьютер ibm pc и операционная система ms dos
- •8.1.Архитектурные особенности процессоров семейства ia-32
- •8.2. Организация памяти компьютера ibm pc, работающего под управлением ms dos
- •Видеопамять
- •Пзу bios
- •Системные ресурсы компьютера
- •8.3. Основы программирования на языке Ассемблера
- •8.3.1. Выполнение программ
- •8.3.2. Написание, компиляция и отладка программы
- •8.3.3. Дополнительные средства ассемблера
- •9. Темы заданий для контрольной работы
- •Тема 1. Архитектура процессора Intel 8086.
- •Контрольные вопросы
- •9.1. Аппаратная модель процессора 8086
- •Программная модель процессора
- •Тема 2. Структура ехе- и сом- программы. Вывод на экран.
- •9.2. Структура программы на языке Ассемблера.
- •9.3. Вывод информации на экран
- •Тема 3. Циклы, ввод с клавиатуры.
- •Тема 4. Ввод чисел. Перевод чисел в различные системы счисления.
- •9.4. Перевод чисел в различные системы счисления
- •Тема 5. Работа с прерываниями: перехват и восстановление.
- •Варианты задания
- •Контрольные вопросы
- •Тема 6. Программирование таймера 8254 и генерация звука
- •Программирование звукового канала таймера.
- •9.7. Инициализация таймера
- •9.8. Назначение каналов таймера в ibm pc
- •9 .9. Генерация тона.
- •9.10. Варианты задания
- •Тема 7. Ответы на контрольные вопросы по лекционному курсу
- •Вариантов заданий Таблица 9.4
- •Литература
9 .9. Генерация тона.
Частоты первой октавы, начиная с ноты C (до) таковы:
Нота |
C (до) |
D (ре) |
E (ми) |
F (фа) |
G (соль) |
A (ля) |
B (си) |
Частота |
523.3 |
587.3 |
659.3 |
698.5 |
784.0 |
880.0 |
987.7 |
Частоты на октаву выше можно получить, удваивая эти значения, на две октавы выше - еще раз удваивая частоты. И наоборот, частоты на октаву ниже равны приблизительно половине этих значений (хорошо настроенное пианино точно не следует арифметическим интервалам). Частоты и длительности, заданные в табл. 9.3, можно изменять экспериментально с целью получения оптимального звучания.
Рис. 9.3. Схема стандартного использования каналов таймера
Пример фрагмента программного кода с использованием таймера.
В данном примере генерируется частота 440Гц. Звук прекращается после нажатия любой клавиши на клавиатуре.
-
;разрешение канала 2 микросхемы 8254 установкой порта B
PORT_B
EQU
61H
;установка адреса порта B
IN
AL, PORT_B
;чтение его значения
OR
AL, 3
;установка двух младших битов
OUT
PORT_B, AL
;посылаем байт в порт B
;установка режима работы (инициализация) канала 2
COMMAND_REG
EQU
43H
;адрес командного рег. РУС
CHANNEL_2
EQU
42H
;адрес канала 2
MOV
AL,10110110b
;управляющий байт для канала 2
OUT
COMMAND_REG, AL
;засылка в командный регистр
;загрузка коэффицизнта деления частоты в регистр канала 2
MOV
AX, 2705h
;счетчик = 1190000/440
OUT
CHANNEL_2,AL
;посылаем младший байт
MOV
AL, AH
;сдвигаем старшиий байт в AL
OUT
CHANNEL_2, AL
;посылаем старший байт
;ждем нажатия клавиши
MOV
AH,1
;1-я функция прерывания 21H
INT
21H
;вызываем прерывание
;выключение звука
IN
AL, PORT_B
;получаем байт из порта B
AND
AL,11111100b
;сбрасываем два младших бита
OUT
PORT_B,AL
;посылаем байт обратно
Один из вариантов задания длительности звучания заданной частоты можно обеспечить выполнением следующих команд:
-
;создание цикла задержки
MOV
AH,0
;номер функции чтения счетчика
INT
1AH
;получаем значение счетчика
MOV
CL,<задержка>
;берем длину очередной ноты
MOV
CH,0
; в СХ теперь только длина
MOV
BX, DX
;берем младшее слово счетчика
ADD
BX, CX
;определяем момент окончания
L1:
INT
1Ah
;берем значение счетчика
CMP
DX, BX
;сравниваем с окончанием
JNE
L1
;неравно продолжаем звук
Читаем значение счётчика времени суток BIOS, используя функцию 0 прерывания 1Ah, и добавляем к нему необходимое значение задержки (кратное числу импульсов по 1/18 секунды). Далее следует цикл, в котором считывается текущее значение счётчика времени суток и сравнивается с требуемой величиной задержки.
Примечание: законченные примеры программ по этой теме можно найти в [5,9].