6.5. Основные команды эвм
Большое изумление у человека, не знакомого с вычислительной техникой вызывает тот факт, что все разнообразие решаемых на ЭВМ задач реализуется с помощью небольшого набора очень простых команд. Система команд у типичной ЭВМ включает в себя всего 60150 базовых команд. Все команды в основном служат для выполнения очень простых действий, таких, как прочитать, запомнить, сложить, сдвинуть, сравнить и т.д. Интеллектуальность ЭВМ достигается за счет того, что ЭВМ способна выполнять программы, состоящие из большого числа таких простых действий с огромной, не достижимой для человека скоростью. В данном разделе учебника кратко рассмотрим набор команд, используемых в типичных ЭВМ, и действия, реализуемые этими командами.
При описании системы команд ЭВМ обычно принято классифицировать команды по функциональному назначению, длине, способу адресации и другим признакам. Классификации команд по различным признакам показаны на рис. 6.8. Рассмотрим основные группы команд, придерживаясь классификации команд на группы по функциональному признаку.
Команды передачи данных. Данная группа команд включает в себя подгруппы команд передачи кодов между регистрами внутри процессора, из регистров процессора в память, из памяти в регистры процессора, из одних ячеек памяти в другие и передачи данных между процессором и портами внешних устройств. Отдельную подгруппу составляют команды работы со стеком. Они позволяют включать данные в стек для временного хранения и извлекать данные из стека при необходимости их .использования. Подробное назначение и принципы использования стеков в ЭВМ рассмотрим ниже при обсуждении работы с подпрограммами и прерываниями.
Команды обработки данных. Данную группу команд с точки зрения выполняемых над данными операций можно подразделить на арифметические (сложить, вычесть, умножить и т.д.), логические (операции И, ИЛИ, НЕ и т.д.) и команды сдвига. Команды этого типа могут иметь один или два операнда. Операнды могут храниться в регистрах центрального процессора, в памяти или в самой команде. Результат операции формируется в регистре-приемнике или в специализированном регистре-аккумуляторе. Команды данной группы формируют признаки результатов, устанавливаемые в регистре флагов процессора: перенос из старшего разряда, переполнение, нулевой результат и др. К арифметическим командам относят также и команды сравнения. Обычно для сравнения двух чисел процессор выполняет операцию вычитания. По результату вычитания устанавливаются флаги во флаговом регистре процессора. Очевидно, что если сравниваемые величины равны, результат вычитания будет нулевым и во флаговом регистре установится флаг нулевого результата. Если первая из сравниваемых величин больше - результат вычитания будет отрицательным и установится флаг отрицательного результата и т.д.
Результат вычитания не сохраняется в памяти, по состоянию флагового регистра можно судить о результатах сравнения двух величин. Многие процессоры имеют команды сравнения операнда с нулем. В некоторых процессорах имеются команды проверки или установки состояния отдельных битов в операнде.
Команды передачи управления. Они имеют важное значение, так как используются для изменения естественного порядка следования команд и организации циклических участков в программах. Простейшей командой передачи управления является команда безусловного перехода JMP <адрес>, которая загружает адрес перехода, указанный в команде, в программный счетчик. Команды условного перехода проверяют указанное в команде условие и модифицируют программный счетчик, если условие истинно. Обычно команды условного перехода используются после команд, изменяющих состояние флагового регистра (например, команд сравнения). При проверке условия производится сравнение состояния одного или нескольких флагов из флагового регистра с комбинацией, указанной в коде команды условного перехода. Модификация программного счетчика может производиться либо загрузкой в него нового значения, либо сложением его со смещением, указанным в команде.
Команды для работы с подпрограммами. Стеки. В практике программирования широко используется такой прием, как организация подпрограмм. Подпрограмма описывается один раз, а использоваться (вызываться) может из различных мест программы. При этом, после того как подпрограмма закончила свою работу, управление должно быть передано туда, откуда подпрограмма была вызвана на команду, следующую в памяти сразу за командой обращения к подпрограмме. Адрес команды, на которую управление передается после окончания работы подпрограмм, называется адресом возврата. Очевидно, для того, чтобы начать выполнять подпрограмму, в программный счетчик необходимо загрузить адрес первой команды подпрограммы. Для осуществления возврата из подпрограммы необходимо запомнить в каком-то месте адрес возврата. Можно, например, сохранить адрес возврата в одном из регистров процессора. Такой способ сохранения адреса возврата очень прост и легко реализуется. Однако он обладает одним существенным недостатком. Достаточна часто встречаются подпрограммы, которые вызывают другие подпрограммы. Пусть основная программа вызвала подпрограмму А. Она в свою очередь обратилась к подпрограмме В. Если адрес возврата для подпрограммы А хранится в регистре процессора, то куда девать адрес возврата при вызове подпрограммы В?
Для организации подпрограмм большинство ЭВМ используют аппаратно поддерживаемую структуру данных, называемую стеком.
Стек - это структура данных, организованная по принципу: последним вошел - первым вышел, т.е. последние записанные в стек данные извлекаются из него первыми. В переводе с англ. stack-стопка. Аналогом стека может служить стопка тарелок. Положить тарелку в стопку можно только сверху, извлечь опять-таки только верхнюю тарелку. В ЭВМ для организации стека выделяется область оперативной памяти, а для ее адресации и доступа к стеку используется упоминавшийся выше регистр - указатель стека. Указатель стека хранит адрес ячейки памяти, содержащей последнее помещенное в стек значение. При записи числа в стек указатель стека модифицируется так, чтобы он указывал наследующую свободную ячейку, и в нее записываются данные При извлечении из стека данные считываются из ячейки, на которую указывает указатель стека, затем указатель стека модифицируется так, чтобы указывать на предпоследнее запомненное значение. Обычно стеки растут в сторону уменьшения адресов, т.е. при записи числа указатель стека уменьшается, при извлечении - увеличивается.
При организации работы с подпрограммами для сохранения адреса возврата используется стек. Команды вызова подпрограмм CALL адрес работают следующим образом. Когда процессор считывает из памяти команду вызова подпрограммы, программный счетчик увеличивается и показывает на команду, следующую за командой вызова подпрограммы. С этой команды выполнение программы должно продолжиться после окончания работы подпрограммы. Таким образом, программный счетчик после выборки команды вызова подпрограммы содержит адрес возврата. При выполнении обращения к подпрограмме процессор сохраняет содержимое программного счетчика в стеке.
Адрес, с которого начинается подпрограмма, вычисляется процессором по адресному полю команды вызова подпрограммы и помещается в программный счетчик. Процессор приступает к выполнению подпрограммы. Если подпрограмма в процессе своей работы вызовет другую подпрограмму, новое значение адреса возврата будет также включено в стек поверх старого адреса возврата.
Для возврата из подпрограммы в основную программу служат команды возврата RETURN. Команды возврата из подпрограммы извлекают из стека верхний элемент и помещают его в программный счетчик. Если имели место несколько вложенных вызовов подпрограмм, то возврат произойдет по адресу возврата, сохраненному после последнего вызова, так как для хранения адресов возврата используется стек и последний сохраненный адрес возврата будет использован первым.
- Глава 4 информационные ресурсы и информатизация общества 64
- Раздел II прикладная информатика 82
- Глава 5. Общая характеристика процессов сбора, передачи, обработки и хранения информации 82
- Глава 6. Технические средства реализации информационных процессов 105
- Глава 11 глобальная информационная сеть internet 222
- Глава 12 искусственный интеллект 270
- Глава 13 экспертные системы 297
- Острейковский в.А. Информатика
- Введение
- Раздел I теоретическая информатика глава 1 основные понятия и определения информатики
- 1.1. Терминология информатики
- 1.2. Объект информатики
- 1.3. Предметная область информатики как науки
- 1.4. Краткая история развития информатики
- Контрольные вопросы
- Глава 2 информатика как наука
- 2.1. Категории информатики
- 2.2. Аксиоматика информатики
- 2.3. Виды и свойства информации
- Контрольные вопросы
- Глава 3. Математические основы информатики
- 3.1. Методы и модели оценки количества информации
- 3.2. Основные понятия теории алгоритмов
- 3.3. Системы счисления
- 3.3.1. Позиционные системы счисления
- 3.3.2. Двоичная система счисления
- 3.3.3. Другие позиционные системы счисления
- 3.3.4. Смешанные системы счисления
- 3.3.5. Перевод чисел из одной системы счисления в другую
- 3.4. Формы представления и преобразования информации
- 3.4.1. Числовая система эвм. Представление целых чисел без знака и со знаком
- 3.4.2. Индикаторы переноса и переполнения
- 3.4.3. Представление символьной информации в эвм
- 3.4.4. Форматы данных
- Контрольные вопросы, упражнения и задачи
- Глава 4 информационные ресурсы и информатизация общества
- 4.1. Особенности информационного ресурса
- 4.2. Формы и виды информационных ресурсов
- 4.3. Информатизация общества
- 4.3.1. Сущность и цели информатизации
- 4.3.2. Создание информационных структур
- 4.3.3. Формирование индустрии информатики
- 4.3.4. Развитие интеллектуального и информационного рынков
- 4.4. Перспективы перехода к информационному обществу
- Контрольные вопросы
- Раздел II прикладная информатика глава 5. Общая характеристика процессов сбора, передачи, обработки и хранения информации
- 5.1. Восприятие информации
- 5.2. Сбор информации
- 5.3. Передача информации
- 5.4. Обработка информации
- Контрольные вопросы
- Глава 6. Технические средства реализации информационных процессов
- 6.1. Определение и принципы организации информационных процессов в вычислительных устройствах
- 6.2. Функционирование эвм с шинной организацией
- 6.3. Функционирование эвм с канальной организацией
- 6.4. Информационная модель эвм
- 6.5. Основные команды эвм
- 6.6. Персональные эвм
- 6.6.1. Общие сведения о пэвм и их классификация
- 6.6.2. Структурная схема пэвм
- 6.6.3. Внешние устройства пэвм
- 6.6.4. Внешние запоминающие устройства пэвм
- 6.6.5. Печатающие устройства пэвм
- 6.6.6. Перспективы развития пэвм
- 6.7. Вычислительные системы
- 6.8. Поколения вычислительных средств
- Контрольные вопросы, упражнения и задачи
- Глава 7 алгоритмизация и программирование
- 7.1. Определение алгоритма
- 7.2. Методы разработки алгоритма
- 7.2.1. Метод частных целей
- 7.2.2. Метод подъема
- 7.3. Программирование с отходом назад
- 7.4. Алгоритмы ветвей и границ
- 7.5. Жизненный цикл программного обеспечения
- Контрольные вопросы, упражнения и задачи
- Раздел III элементы информационных технологий глава 8 базы и банки данных
- 8.1. Автоматизированные банки данных
- 8.2. Модели данных
- 8.3. Схема функционирования субд
- 8.4. Организация поиска данных
- 8.5. Администратор базы данных
- Контрольные вопросы
- Глава 9 пакеты прикладных программ
- 9.1. Классификация ппп
- 9.2. Проблемно-ориентированные ппп
- 9.4. Интегрированные ппп
- 9.4. Пакеты прикладных программ для решения научно-технических задач
- 9.5. Библиотеки стандартных программ
- Контрольные вопросы
- Глава 10 вычислительные сети
- 10.1. Принципы построения и классификация вычислительных сетей
- 10.2. Способы коммутации и передачи данных
- 10.3. Программное обеспечение вычислительных сетей
- 10.4. Локальные вычислительные сети
- 10.4.1. Классификация лвс
- 10.4.2. Организация обмена информацией в лвс
- 10.4.3. Методы доступа в лвс
- 10.4.4. Модели взаимодействия в лвс
- 10.5. Обеспечение безопасности информации в вычислительных сетях
- Контрольные вопросы
- Глава 11 глобальная информационная сеть internet
- 11.1. Краткая характеристика основных информационных ресурсов internet
- 11.2. Принципы функционирования internet
- 11.2.1. Иерархия протоколов internet
- 11.2.3. Спецификация универсального адреса информационного ресурса в internet
- 11.3. Технология world wide web (www)
- 11.3.1. Общая характеристика www
- 11.3.2. Программы-клиенты www
- 11.3.3. Стратегия поиска информации в сети
- 11.3.4. Язык гипертекстовой разметки web-документов html
- 11.3.5. Поисковые машины www
- 11.4. Электронная почта в internet
- 11.5. Технологии доступа к ресурсам internet, отличные от www
- 11.5.1. Удаленный доступ к ресурсам сети telnet
- 11.5.2. Обмен файлами по протоколу ftp. Служба архивов ftp
- Контрольные вопросы
- Глава 12 искусственный интеллект
- 12.1. Направление исследований в области искусственного интеллекта
- 12.2. Машинный интеллект и робототехника
- 12.3. Интеллектуальные роботы
- 12.4. Моделирование биологических систем
- 12.5. Эвристическое программирование и моделирование
- 12.6. Система знаний
- 12.7. Модели представления знаний
- 12.7.1. Логическая модель представления знаний
- 12.7.2. Сетевая модель представления знаний
- 12.7.3. Фреймовая модель представления знаний
- 12.7.4. Продукционная модель представления знаний
- Контрольные вопросы
- Глава 13 экспертные системы
- 13.1. Общая характеристика эс
- 13.2. Структура и режимы использования эс
- 13.3. Классификация инструментальных средств эс
- 13.4. Организация знаний в эс
- 13.5. Отличие эс от традиционных программ
- 13.6. Виды эс
- 13.7. Типы задач, решаемых эс
- Контрольные вопросы
- Приложение 3 глоссарий экспертных систем