- •Содержание
- •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. Инструкции управления процессором
- •Литература
1. Введение
Настоящее учебное пособие предназначено для студентов и специалистов, занимающихся изучением и использованием микроЭВМ в системах обеспечения комплексной информационной безопасности ЭВС и автоматизированных системах управления производственными процессами (АСУ ТП).
В учебном пособии будут рассмотрены особенности построения, архитектуры и программирования микроЭВМ на уровне машинных команд и языка ассемблера. Тип конкретного процессора будет указываться по ходу текста; там, где это не оговорено специально, речь будет идти о процессоре 8086.
Процессоры могут использоваться для построения вычислительных машин (компьютеров) или в системах автоматического управления, например, это могут быть устройства числового программного управления металлообрабатывающими станками (УЧПУ), автоматизированные системы управления промышленными роботами (УПУ ПР), устройство распознавания в системе технического зрения робота и т.п. В основу этих современных устройств положены, как правило, микроЭВМ.
Введем некоторые базовые понятия, необходимые для изучения курса.
Вычислительная машина — устройство обработки информации, работающее по вложенной программе.
ЭВМ — электронно-вычислительная машина.
ЦВМ — цифровая вычислительная машина.
Компьютер — (Computer) иностранное слово, означающее вычислительную машину.
АЛУ — арифметико-логическое устройство — это основное устройство процессора, выполняющее операции над операндами.
Процессор — основное устройство, обрабатывающее информацию в ЦВМ.
Микропроцессор — полупроводниковый кристалл или комплект кристаллов в одном корпусе, на которых реализуется центральный процессор ЭВМ.
МикроЭВМ — вычислительная машина, основу которой составляет микропроцессор (или микропроцессорный набор БИС), дополненный памятью, внешними устройствами и набором средств связи.
Микрокалькулятор — примитивная ЭВМ, ориентированная на ручной ввод данных и программ.
Память — устройство ЦВМ для хранения информации (данных и программ).
ОЗУ — оперативное запоминающее устройство для хранения программ и данных, отличается возможностью записи информации по командам процессора.
ПЗУ — постоянное запоминающее устройство, информация, записанная в нем, не может быть изменена.
ППЗУ — перепрограммируемое запоминающее устройство, информация в него может быть записана много раз, но для новой записи требуется произвести предварительное стирание старой информации или использовать специальные устройства — программаторы.
Бит — единица информации или 1 двоичный разряд.
Байт — первоначально слово для представления символов алфавита, в настоящее время имеет размер 8 бит.
Машинное слово — набор двоичных разрядов, обрабатываемых машиной одновременно.
Адрес — абсолютный, уникальный номер ячейки памяти или регистра внешнего устройства.
Внешняя память — память, организованная на внешних устройствах, как правило, электромеханических, энергонезависимая, не входящая в пространство абсолютных адресов.
Внешние устройства — все устройства машины, кроме процессора, ОЗУ и связывающих магистралей.
Контроллер — построенная на основе микропроцессора ЭВМ с жестко заданной программой, предназначенная для управления некоторым внешним устройством.
Файл — упорядоченная система записей на машинном носителе информации.
При рассмотрении ЭВМ обычно рассматривают ее архитектуру.
Под архитектурой некоторого устройства будем понимать:
структуру устройства;
принципы функционирования элементов структуры;
принципы связи между элементами структуры.
Архитектура процессора, с точки зрения программиста, определяется доступными регистрами процессора, организацией стека, системой команд, системой адресации, т.е. принципами обращения к операндам, средствами ввода-вывода, а также типами обрабатываемых данных. Типы данных представляют собой базовые объекты, манипулирование которыми обеспечивается системой команд.
Для того чтобы создать некоторое управляющее устройство на основе микроЭВМ, необходимо решить следующие задачи:
разработать алгоритм управления;
разработать алгоритм (протокол) обмена информацией между внешними (по отношению к микроЭВМ) датчиками, самой ЭВМ и исполнительными устройствами;
реализовать упомянутые алгоритмы на одном из доступных данной машине языков;
разработать аппаратуру связи микроЭВМ с внешними устройствами (интерфейс).
Для решения поставленных задач специалист должен знать:
что такое алгоритм, формы его представления, возможности реализации различных алгоритмов с помощью ЭВМ;
способы представления информации в микроЭВМ (системы счисления, коды, кодирование информации на внешних носителях);
структуру и характеристики микроЭВМ;
принципы обращения микропроцессора к внешним устройствам;
систему команд, т.е. набор элементарных, с точки зрения ЭВМ, операций, определяющих возможности машины как управляющей системы;
иметь представление о языках программирования, разработанных для данной ЭВМ, о их возможностях для решения стоящих перед пользователем задач.