Основные команды ЭВМ
Система команд у типичной ЭВМ включает в себя от 60 до 250 базовых команд. Все команды в основном служат для выполнения очень простых действий, типа чтения, записи, сложения, сдвига и т.д.
«Интеллектуальность» ЭВМ достигается за счет того, что ЭВМ способна выполнять программы, состоящие из большого числа таких простых команд с огромной скоростью.
Классификация команд ЭВМ
I. По функциональному назначению
- команды передачи данных
- команды обработки данных
- команды передачи управления
- дополнительные команды
II. По количеству адресов
- безадресный
- с первого адреса
- со второго адреса
- с третьего адреса
III. По способу кодирования операции
- с фиксированной длиной кода операции
- с переменной длинной кода операции
IV. По длине
- один байт (слово)
- 2 байта (слово)
- 3 байта (слово)
Команды передачи данных
Данная группа команд включает в себя подгруппу команд передачи кода внутри МП между регистрами, из регистров МП в память, из памяти в регистры, из одних ячеек памяти в другие и передачи данных между МП и портами ВУ.
Отдельную подгруппу составляют команды работы со стеком. Они позволяют включать данные в стек для временного хранения и извлекать данные из стека при необходимости их использования.
Команды обработки данных
Данную группу команд можно подразделить на арифметические, логические и команды сдвига.
Команды этого типа могут иметь один или два операнда. Операнды могут хранится в регистрах, ЦП, памяти или самой команде. Результат данной группы операций формируется в регистре-приемнике или в специальном регистре-аккумуляторе.
Команды этой группы формируют признаки результатов, устанавливая в регистре флагов процессора перенос из старшего разряда, переполнение, нулевой результат. К арифметическим командам относят также и команды сравнения, т.к. для сравнения двух чисел ЦП выполняет операцию вычитание. По результату вычитания устанавливаются флаги во флаговом регистре МП. Результат вычитания не сохраняется в памяти, но по состоянию флагового регистра можно узнать о результатах сравнения двух величин.
Многие ЦП имеют команды сравнения операнда с 0. В других МП имеются команды проверки или установки состояния отдельных битов в операнде.
Команды передачи управления
Они имеют важное значение, т.к. используются для изменения естественного порядка следования команд и организации циклических участков в программах. Простейшей командой передачи управления является команда безусловного перехода JMP, которая загружает адрес перехода, указанного в команде в программный счетчик.
Команды условного перехода проверяют указанное в команде условие и модифицируют программный счетчик, если условие истинно. Обычно команды условного перехода используются после команд, изменяющих состояние флагового регистра.
Команды для работы с подпрограммами. Стек.
В практике программирования широко используется такой прием, как организация подпрограмм. Подпрограмма описывается один раз, а вызывается многократно из различных мест программы. При этом, как после того подпрограмма закончила свою работу, управление должно быть передано туда, откуда подпрограмма была вызвана на команду, следующую в памяти сразу за командой обращения к подпрограмме.
Адрес программы, на которую управление передается после окончания работы подпрограммы, называется адресом возврата. Для организации подпрограмм большинство ЭВМ используют аппаратно-поддерживаемую структуру данных, называемую стеком. Стек – это структура данных, организованная по принципу LIFO. В ЭВМ для организации стека выделяется область ОП, а для адресации и доступа к стеку используется регистр-указатель стека.
Указатель стека хранит адрес ячейки памяти, содержащий последнее помещенное в стек значение. При записи числа в стек указатель стека модифицируется так. Чтобы он указывал на следующую свободную ячейку, в которую записываются данные. При извлечение из стека данные считываются из ячейки, на которую указывает указатель стека, затем указатель стека модифицируется так, чтобы указывать на предпоследнее заполненное значение. Обычно стеки растут в сторону уменьшения адресов, т.е. при записи числа указатель стека уменьшается, а при увеличение увеличивается.