- •Введение
- •Цели и задачи курса
- •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
- •Литература
6.4.1. Программные прерывания
Под программным прерыванием следует понимать вызов процедуры операционной системы. Большая часть этих процедур, которые называются обработчиками прерываний, обеспечивают для прикладных программ возможность выполнения операций ввода-вывода. Прерывания используются для выполнения перечисленных ниже задач:
• отображение символов и строк;
• чтение символов и строк с клавиатуры;
• отображение текста в цвете;
• открытие и закрытие файлов;
• чтение данных из файлов;
• запись данных в файлы;
• получение и установка системного времени и даты.
Команда int
Данная команда вызывает процедуру обработки прерывания, помещая перед этим в стек состояние регистра флагов центрального процессора. Перед выполнением команды INT в регистры нужно загрузить значения соответствующих параметров. В самом простейшем случае в регистр АН нужно загрузить число, соответствующее номеру вызываемой процедуры.
В зависимости от типа вызываемой процедуры, в другие регистры нужно загрузить требуемые параметры. Синтаксис команды INT следующий: INT номер, где вместо номера нужно подставить целое число в диапазоне 00- FFh.
6.4.2. Обработка прерываний
При выполнении команды INT процессор использует таблицу векторов прерываний. Она размешается в первых 1024 байтах оперативной памяти (см. далее раздел 9.1 «Организация памяти»). Каждый элемент этой таблицы является 32-разрядным указателем, заданным в форме "сегмент-смешение", и определяет адрес начала процедуры обработки прерывания. Содержимое таблицы векторов прерываний зависит от конкретной компьютерной системы. На рис. 7.10. показана последовательность действий, выполняемая центральным процессором при вызове команды INT.
Рис. 6.10. Процесс обработки прерывания
6.4.3 Таблица векторов прерываний
Основная особенность обработки прерываний в системе MS DOS, благодаря которой достигается высочайшая гибкость в работе программ, заключается в использовании специальной таблицы векторов прерываний. Небольшой фрагмент таблицы векторов прерываний приведен в табл.6.1.
Пример таблицы векторов прерываний Таблица 6.1.
Номер прерывания |
Смещение |
Векторы прерываний |
00h-03h |
0000h |
02C1:5186 0070:0C67 0DAD:2C1B 0070:0C67 |
04h-07h |
0010h |
0070:0C67 F000:FF54 F000:837B F000:837B |
08h-0Bh |
0020h |
0D70:022C 0DAD:2BAD 0070:0325 0070:039F |
0Ch-0Fh |
0030h |
0070:0419 0070:0493 0070:050D 0070:0C67 |
10h-13h |
0040h |
C000:0CD7 F000:F84D F000:F841 0070:237D |
Конкретные значения векторов прерываний зависят от модели ПК, его версии BIOS и MS DOS. Каждому номеру прерывания (напомним, что их всего 256) соответствует свой вектор. Например, в табл. 6.1 прерыванию INT 00h (деление на ноль) соответствует вектор прерывания 02С1: 5186h. Чтобы вычислить смешение вектора прерывания относительно начала таблицы, нужно номер прерывания умножить на 4. Например, смешение вектора прерывания INT 09h равно 0024h, поскольку 9 х 4 = 36 в десятичной системе счисления, или 24h - в шестнадцатеричной.
Процесс обработки прерывания включает перечисленные ниже четыре этапа: (см. Рис. 6.10.).
1. Номер, указанный после кода команды int. определяет, какой из элементов таблицы векторов прерываний должен использовать центральный процессор для определения адреса обработчика прерывания.
2. Процессор помешает в стек значение регистра флагов flags, запрещает генерацию аппаратных прерываний и выполняет дальний вызов процедуры, адрес которой указан в выбранном элементе таблицы векторов прерываний (в нашем примере это F000h: F065h).
3. Начинает выполняться процедура обработки прерывания, расположенная по адресу F000h: F065h, в конце которой располагается команда IRET.
4. При выполнении команды IRET (Interrupt Return, или возврат из прерывания) прерванная программа возобновляет свою работу сразу после команды INT 10h.
