- •В. Г. Баула Введение в архитектуру эвм и системы программирования
- •Предисловие
- •1. Понятие об архитектуре эвм
- •2. Машина Фон Неймана
- •2.1. Память
- •2.2. Устройство Управления
- •2.3. Арифметико–Логическое Устройство
- •2.4. Взаимодействие уу и алу
- •3. Учебная машина
- •3.1. Схема выполнения команд
- •3.2. Примеры программ для учебной машины.
- •3.2.1. Пример 1. Оператор присваивания.
- •3.2.2. Пример 2. Условный оператор.
- •3.2.3. Пример 3. Реализация цикла.
- •3.2.4. Пример 4. Работа с массивами.
- •3.3. Формальное описание учебной машины
- •4. Введение в архитектуру эвм
- •4.1. Адресность эвм
- •4.2. Сравнительный анализ эвм различной адресности
- •4.3. Дробно-адресная архитектура
- •4.4. Способы адресации
- •4.5. Многообразие форматов данных
- •4.6. Форматы команд
- •4.7. Базирование адресов
- •5. Понятие семейства эвм
- •6. Архитектура младшей модели семейства Intel
- •6.1. Память
- •6.2. Форматы данных
- •6.3. Вещественные числа
- •6.4. Целые числа
- •6.5. Сегментация памяти
- •6.6. Мнемонические обозначения регистров
- •6.7. Структура команд
- •6.8. Команды языка машины
- •6.8.1. Команды пересылки
- •6.8.2. Арифметические команды
- •7. Язык Ассемблера
- •7.1. Понятие о языке Ассемблера
- •7.2. Применение языка Ассемблера
- •7.3. Классификация предложений языка Ассемблер
- •7.4. Пример полной программы на Ассемблере
- •7.5. Переходы
- •7.6. Команды переходов
- •7.6.1. Команды безусловного перехода
- •7.6.2. Команды условного перехода
- •7.6.3. Команды цикла
- •7.7. Работа со стеком
- •7.8. Команды вызова процедуры и возврата из процедуры
- •7.9. Программирование процедур на Ассемблере
- •7.9.1. Стандартные соглашения о связях
- •8. Система прерываний.
- •9. Дополнительные возможности Ассемблера.
- •9.1. Строковые команды.
- •9.2. Логические команды.
- •9.3. Команды сдвига.
- •10. Модульное программирование
- •10.1. Модульное программирование на Ассемблере.
- •10.2. Схема работы редактора внешних связей.
- •10.3. Схема работы статического загрузчика.
- •10.4. Схема работы динамического загрузчика.
- •11. Понятие о системе программирования.
- •11.1. Компоненты системы программирования.
- •11.2. Характеристики исполняемых модулей.
- •11.2.1. Перемещаемые модули.
- •11.2.2. Повторно-выполняемые модули.
- •11.2.3. Повторно-входимые (реентерабельные) модули.
- •12. Макросредства языка Ассемблер.
- •12.1. Сравнение процедур и макроопределений.
- •13. Схема работы транслятора с языка Ассемблера.
- •14. Понятие о мультипрограммном режиме работы.
- •14.1. Требования к аппаратуре для обеспечения возможности работы в мультипрограммном режиме.
- •14.1.1. Система прерываний.
- •14.1.2. Механизм защиты памяти.
- •14.1.3. Аппарат привилегированных команд.
- •14.1.4. Таймер.
- •15. Архитектурные особенности современных эвм.
- •15.1. Конвейерные эвм.
- •15.2. Эвм различной архитектуры.
- •15.2.1. Архитектура эвм с общей шиной.
- •15.2.2. Достоинства и недостатки архитектуры с общей шиной.
- •15.2.3. Архитектура эвм с каналами ввода/вывода.
- •15.3. Уровни параллелизма.
- •Список литературы.
5. Понятие семейства эвм
Компьютеры могут применяться в самых различных областях человеческой деятельности (эти области часто называются предметными областями). В качестве примеров можно привести область научно-технических расчётов (там много операций с вещественными числами), область экономи–ческих расчётов (там, в основном, выполняются операции над целыми числами и обработка символьной информации), мультимедийная область (обработка звука, изображения и т.д.), область управления различными сложными устройствами (ракетами, доменными печами и др.)
Компьютеры, архитектура которых ориентирована на какую-то одну предметную область, называются специализированными, в отличие отуниверсальныхЭВМ, которые более или менее успешно можно использовать во всех предметных областях. Мы в нашем курсе будем изучать архитектуру только универсальных ЭВМ.
Говорят, что компьютеры образуют семейство, если выполняются следующие требования:
Одновременно выпускаются и используются несколько моделейсемейства с различными производительностью и ценой (моделями называются компьютеры-члены семейства).
Модели обладают программной совместимостью:
снизу-вверх – старшие модели поддерживают все команды младших (любая программа, написанная для младшей модели, безошибочно выполняется и на старшей);
сверху-вниз – на младших моделях выполняются программы, написанные для старших, если выполнены условия:
наличие у младшей модели достаточного количества ресурсов (например, памяти);
программа состоит только из поддерживаемых младшей моделью команд.
Присутствует унификацияустройств, то есть их аппаратная совместимость между моделями (например, печатающее устройство для младшей модели должно работать и на старшей).
Модели организованы по принципу модульности, что позволяет в определённых пределах расширять возможности ЭВМ, увеличивая, например, объём памяти или повышая быстродействие центрального процессора.
Стандартизировано системное программное обеспечение (например, компилятор с языка Турбо-Паскаль может работать на всех моделях семейства).
Большинство выпускаемых в наше время ЭВМ содержатся в каких-либо семействах. В нашем курсе для упрощения изложения будут рассматриваться в основном младшие модели семейства ЭВМ компании Intel. Соответственно все примеры программ должны выполняться для всех моделей этого семейства, поэтому мы ограничимся лишь архитектурой и системой команд самой младшей модели этого семейства [9].
6. Архитектура младшей модели семейства Intel
6.1. Память
Архитектура рассматриваемого компьютера является дробно-адресной, поэтому адресуемая память состоит из регистровой и основной памяти. В младшей модели семейства основная память имеет объём 220ячеек по 8 бит каждая. Регистровая память будет рассмотрена немного позже.
6.2. Форматы данных
Целые числа.
Целые числа могут занимать 8 бит (короткое целое), 16 бит (длинное целое) и 32 бита (сверхдлинное целое). Длинное целое принято называть машинным словом(не путать с машинным словом в Учебной Машине!).
Как видим, в этой архитектуре есть многообразие форматов целых чисел, что позволяет писать более компактные программы. Для других архитектур это может оказаться несущественно, например, в некоторых современных супер-ЭВМ идёт работа с малым количеством целых чисел, поэтому вводится только один формат – сверхдлинное целое.
Символьные данные.
В качестве символов используются короткие целые числа, которые трактуются как неотрицательные (беззнаковые) числа, задающие номер символа в некотором алфавите.1Заметим, что как таковой символьный тип данных (в смысле языка Паскаль) в Ассемблере отсутствует, а запись'A'обозначает не символьный тип данных, а эквивалентна выражению языка ПаскальOrd('A').
Массивы (строки).
Массивы могут состоять из коротких или длинных целых чисел. Массив коротких целых чисел может рассматриваться как символьная строка. В машинном языке присутствуют команды для обработкиэлементовтаких массивов, если такую команду поставить в цикл, то образуются удобное средство для работы с массивами.
Вещественные числа.
Чаще всего используются три формата вещественных чисел: короткие, длинные и сверхдлинные вещественные числа. Стоит отметить следующий важный факт. Если целые числа в различных ЭВМ по чисто историческим причинам иногда имеют разное внутреннее представление, то на момент массового выпуска ЭВМ с командами для работы с вещественными числами уже существовал определённый стандарт на внутреннее представление этих чисел – IEEE(InstituteofElectricalandElectronicsEngineers), и почти все современные машины этого стандарта придерживаются.