
- •Введение
- •Цели и задачи курса
- •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.3. Вывод информации на экран
Вывод информации в ассемблерных программах осуществляется обычно при помощи сервисных функции DOS (прерывание 21h), BIOS (прерывание 10h) или прямым отображением в текстовый видеобуфер.
Процесс вывода с использованием функций DOS и BIOS состоит в следующем:
- определенные регистры микропроцессора загружаются выводимой информацией или адресом буфера, содержащего выводимую информацию;
- в регистр АН заносится номер используемой для операции вывода функции;
- инициируется прерывание 21h или 10h.
Ниже представлен перечень функций прерывания 21h и 10h, использующихся для вывода информации.
Прерывание 21h.
Функция 02h - вывод на дисплей.
Вход:
AH=02h
DL = ВЫВОДИМЫЙ СИМВОЛ
Выход: нет
Описание: Посылает символ из DL на стандартный вывод. Обрабатывает символ Backspace (ASCII 8), перемещая курсор влево на одну позицию и оставляя его в новой позиции.
Функция 09h (выдать строку).
Вход: AH=09h
DS:DX= адрес строки, заканчивающейся символом '$'.
Выход: нет
Описание: Строка, исключая завершающий ее символ '$', посылается на стандартный вывод. Символы Backspace обрабатываются как в функции 02h.
Приведенный ниже фрагмент программы иллюстрирует процесс вывода строки на экран.
MOV АН, 09Н ;Выбор функции прерывания
MOV DX, OFFSET STR ; Занесение в DX адреса выводимой строки
INT 21H
; выводимая строка объявлена в сегменте данных
STR DB 10,13,'Неllо $' ;Описание строки
Функции DOS и BIOS подробно описаны в [1], а примеры их использования даны в [2]. Обе эти книги в электронном виде доступны в среде программирования WinASM 2.0 (см. пункт 8.3.2).
Вывод на экран через видеобуфер.
Всё, что мы видим на экране монитора, хранится в видеобуфере графического адаптера компьютера. Известно, что есть два режима работы монитора – текстовый и графический. Соответственно в оперативной памяти графического адаптера, управляющего монитором, есть две области памяти, которые называются текстовый видеобуфер и графический видеобуфер. Какие бы функции DOS или BIOS не использовались в программе, в любом случае выводимая на экран информация будет храниться в одном из видеобуферов адаптера.
Для прямого обращения к текстовому видеобуферу в программе необходимо предварительно настроить сегментный регистр ES на начало области памяти, соответствующей текстовому видеобуферу (базовый адрес текстового видеобуфера равен В800h).
Mov AX, 0B800h
Mov ES, AX
Следует также знать, что информация выводимая в текстовый видеобуфер, должна представлять собой символьные ASCII – коды. Например, для вывода числа 375 на экран необходимо последовательно, используя регистр AL, записывать в видеобуфер символьные коды этих трёх цифр: 33h 37h 35h. Для этого к каждой цифре выводимого числа требуется предварительно прибавить ASCII – код «0»=30h или объявить выводимое число как символьную строку:
STR DB ‘375’ ; строка с именем STR.
Пример программы вывода строки прямым отображением в видеобуфер см. в разделе «тема 5». Для вывода текстовой информации с использованием цвета в регистр AH следует записать код цвета символа и цвета атрибута (по умолчанию изображение будет чёрно-белым). Расположение выводимых символов на экране задаётся смещением через индексный регистр DI, нулевое смещение соответствует верхнему левому углу экрана. Каждый символ в видеобуфере занимает 2а байта – байт символа и байт атрибута. Примеры программ с описанием работы видеобуфера можно найти в [9].