- •Содержание
- •1. Введение
- •2. Представление информации в эвм
- •2.1. Системы счисления
- •2.1.1. Основные понятия
- •2.1.2. Системы счисления, используемые в вычислительной технике
- •2.1.3. Перевод чисел из одной системы счисления в другую
- •2.2. Типы данных
- •2.2.1. Типы данных, используемых в эвм
- •2.2.2. Константы
- •2.2.3. Логические величины
- •2.2.4. Символьные величины
- •2.2.5. Целые числа
- •2.2.6. Вещественные числа
- •2.3. Форматы команд
- •3. Основы построения эвм
- •3.1. Немного истории
- •3.2. Особенности архитектуры современной вычислительной машины
- •3.2.1. Основные понятия
- •3.2.2. Структурная организация машины
- •3.3. Вариант структуры микроЭвм
- •3.3.1. Общая структура машины
- •3.3.2. Процессор
- •3.3.3. Оперативная память
- •3.3.4. Системная память
- •3.3.5. Система адресации
- •3.3.6. Виртуальная память
- •3.3.7. Таймер
- •3.3.8. Внешние устройства
- •3.3.9. Принципы обмена информацией с внешними устройствами
- •Некоторые вопросы программного обеспечения
- •4.1. О программном обеспечении
- •4.2. Процесс компиляции
- •4.3. Компиляция с языка Ассемблера
- •5. Особенности архитектуры эвм типа ibm-рс
- •5.1. Введение
- •5.2. Исторический обзор процессоров клона 80х86
- •5.3. Классификация процессоров Intel 80х86
- •5.4. Особенности периферийных устройств ibm-pc
- •5.5. Характеристики компьютера
- •5.6. Сегментная адресация
- •5.7. Особенности распределения адресного пространства в компьютерах ibm-pc
- •5.7.1. Стандартная оперативная память (Conventional memory)
- •5.7.2. Область верхней памяти (Upper Memory Area ‑ uma)
- •5.7.3. Область высшей памяти (High Memory Area ‑ hma)
- •5.7.4. Расширенная память (eXtended Memory Specification — xms)
- •5.7.5. Дополнительная память (Expanded Memory Specification — ems)
- •5.8. Обмен информацией с периферийными устройствами
- •5.8.1. Порты ввода/вывода
- •5.8.2. Использование адресного пространства памяти
- •5.8.3. Прямой доступ к памяти
- •5.9. Прерывания
- •5.10. Начальный запуск эвм
- •5.11. Регистры процессора
- •5.11.1. Регистры общего назначения
- •5.11.2. Указатель инструкций
- •5.11.3. Регистр флагов и управляющие регистры
- •5.11.4. Регистры сегментов и селекторов
- •5.11.5. Системные адресные регистры
- •5.11.6. Регистры отладки
- •5.11.7. Регистры тестирования и модельно-специфические регистры
- •6. Debug — средство непосредственной коррекции и отладки загрузочного кода программ
- •6.1. Введение
- •6.1.1. Команды без аргумента
- •Input I порт
- •6.1.2. Команды обращения к ячейкам
- •15D0:010c bfffff mov di,ffff
- •15D0:010f 57 push di
- •6.1.3. Команды запуска программы
- •6.1.4. Команды просмотра и модификации регистров
- •7. Методы адресации
- •7.1. Введение
- •7.2. Регистровый метод адресации
- •159B:0101 1e push ds
- •159B:0101 1e push ds
- •159B:0101 1e push ds
- •7.3. Непосредственный метод адресации
- •7.4. Прямая адресация
- •7.5. Косвенная регистровая адресация
- •159B:0100 not word ptr [bx]
- •159B:0102 e000 loopnz 0104
- •7.6. Адресация по базе
- •7.7. Косвенная регистровая адресация с индексированием
- •159B:0102 0e push cs
- •7.8. Адресация по базе с индексированием
- •7.9. Относительная адресация
- •7.10. Косвенная регистровая адресация с масштабированием
- •7.11. Адресация по базе с индексированием и масштабированием
- •8. Синтаксис ассемблера
- •8.1. Директивы определения данных
- •8.1.1. Определение переменных
- •Cимвольные строки
- •Числовые данные
- •Примеры:
- •8.2. Выражения
- •8.3. Непосредственные операнды
- •8.4. Структуры
- •8.5. Сегменты
- •8.6. Модели памяти и упрощенные директивы определения сегментов
- •8.7. Упрощенные директивы описания сегментов
- •8.8. Создание программы на ассемблере
- •8.9. Получение выполняемого файла
- •9. Система команд
- •9.1. Классификация команд по операндам
- •9.2. Классификация команд по действию
- •9.2.1. Команды пересылки данных
- •9.2.2. Арифметические команды
- •8.2.3. Команды манипуляции битами
- •9.2.4. Управление центральным процессором
- •9.2.4. Команды передачи управления
- •Iret, iretd
- •9.3. Краткий список команд с используемыми операндами
- •9.3.1. Условные обозначения:
- •9.3.2. Инструкции пересылки данных
- •9.3.3. Арифметические, логические и инструкции сдвига
- •9.3.4. Инструкции обработки строк
- •9.3.5. Инструкции передачи управления
- •9.3.6. Инструкции управления процессором
- •Литература
3.3.3. Оперативная память
Алгоритм решения задачи, представленный в виде некоторого набора машинных команд и набора данных к задаче, записывается в специальное устройство запоминания — оперативное запоминающее устройство (ОЗУ). Объем оперативной памяти и время обращения к ней являются важнейшими характеристиками ЭВМ. Дело в том, что от объема ОЗУ зависит размер программы, т.е. объем задания, который вкладывается априори в ЭВМ. Естественно, чем больше ОЗУ, тем более сложные задачи может решить ЭВМ и тем больший объем исходной информации она может обрабатывать.
Единицей информации является 1 бит (объем информации, содержащейся в одном двоичном разряде). Если Вы звоните по телефону другу и хотите узнать, дома ли он, то, услышав его голос, Вы получите 1 бит информации, так как из двух возможных вариантов (друг дома; друга нет дома) реализовался один.
Однако 1 бит — это малый объем, поэтому современные ЭВМ параллельно обрабатывают целый набор двоичных разрядов, называемый «машинное слово».
В современной вычислительной технике широко используется такое понятие, как байт — 8 двоичных разрядов. Размер машинного слова обычно составляет величину, кратную 2 в степени n: один, два, четыре байта и т.д.
Когда речь идет об объеме памяти, то используется величина К, равная 210, т.е. 1024. Объем ОЗУ современных микроЭВМ составляет от единиц мегабайт до 256 и более Мбайт. Время обращения к ОЗУ — это время, затрачиваемое на выдачу одного слова из памяти (отчасти определяющее быстродействие ЭВМ). Обычно, время обращения микроЭВМ к оперативной памяти составляет от 0,01 до 0,1 мксек.
Каждая ячейка памяти (байт) имеет индивидуальный номер - адрес. Нумерация начинается с 0. Рассматриваемая машина имеет 16-разрядное слово, состоящие из двух байт. Следовательно, объем прямо доступной памяти составит 216= 64 кб, или 32 кслова. Адреса, относящиеся к оперативной памяти, носят название абсолютных адресов, в данном случае объем адресного пространства составляет 64 кб.
Выше упоминалось, что желательно иметь большой объем памяти. Однако здесь возникает техническое противоречие: энергонезависимая быстродействующая память оказывается дорогой и занимает относительно большой физический объем. Минимальным объемом и достаточным быстродействием обладает динамическая память (рис. 3.8), но для ее работы требуется постоянное питание.
Входной сигнал (0 или 1) запоминается на емкости, которая разряжается через эммитерный повторитель, имеющий высокое входное сопротивление.
+
Вход
Выход
Рис. 3.8
Однако при интегральном исполнении величина емкости составляет пикофарады, а время хранения информации - мсек. Поэтому требуется режим регенерации, при котором сигнал с выхода ячейки регулярно записывается на вход. При отключении питания или режима регенерации содержимое ячейки теряется, что является крупным недостатком динамической памяти.
Память, не требующая регенерации, может быть реализована на триггерах, такая память может иметь большее быстродействие, но она дороже.
Существующие различные варианты энергонезависимой памяти можно разбить на два класса:
ПЗУ — постоянное запоминающее устройство и
ППЗУ — перепрограммируемое запоминающее устройство.
Принципиальное различие между ними состоит в том, что в ПЗУ информация заносится единственный раз и в дальнейшем ее изменить невозможно. В ППЗУ имеется возможность (различными способами в зависимости от конструкции) записать новую информацию.
Важно запомнить, что в области абсолютных адресов, т.е. тех ячеек, в которых хранятся готовые к исполнению команды и данные (один из принципов машины фон Неймана), могут находиться конструктивно различные банки (разделы) памяти. (Не надо путать функциональное понятие ОЗУ с его технической реализацией!)