Что такое система команд в информатике
Система команд
* определённых типах данных,
* способов обработки прерываний и исключений,
методов ввода и вывода.Система команд представляется спецификацией соответствия (микро)команд наборам кодов (микро)операций, выполняемых при вызове команды, определяемых (микро)архитектурой системы. (При этом на системах с различной (микро)архитектурой может быть реализована одна и та же система команд. Например, Intel Pentium и AMD Athlon имеют почти идентичные версии системы команд x86, но имеют радикально различный внутренний дизайн.)
Базовыми командами являются, как правило, следующие:
* арифметические, например, «сложения» и «вычитания»;
битовые, например, «логическое и», «логическое или» и «логическое не»;
* присваивание данных, например, «переместить», «загрузить», «выгрузить»;
* ввода-вывода, для обмена данными с внешними устройствами;
управляющие инструкции, например, безусловный, условный или косвенный переход, вызов подпрограммы, возврат из подпрограммы.Оптимальными в различных ситуациях являются разные способы построения системы команд:
* Если объединить наиболее часто используемую последовательность микроопераций под одной микрокомандой, то надо будет обеспечивать меньше микрокоманд. Такое построение системы команд носит название CISC (Complex Instruction Set Computer), в распоряжении имеется небольшое число составных команд.
* С другой стороны, это объединение уменьшает гибкость системы команд. Вариант с наибольшей гибкостью — наличие множества близких к элементарным операциям команд. Это RISC (Reduced Instruction Set Computer), в распоряжении имеются усечённые, простые команды.
* Ещё большую гибкость системы команд можно получить, используя MISC-подход, построенный на уменьшении количества команд до минимального и упрощении вычислительного устройства обработки этих команд.
Алгоритм и исполнитель
Пожалуйста, приостановите работу AdBlock на этом сайте.
В этом уроке разберём некоторые теоретические понятия, которые формализуют понятие программирования. Заодно точнее сформулируем основную задачу вашего обучения.
Для начала предлагаю вам немного поиграться со следующей детской игрушкой. Пройдите первые пять заданий, возвращайтесь назад и продолжайте чтение урока.
Рис.1 Скриншот игрового поля на code.org
Надеюсь, у вас всё получилось. Теперь на этом примере опишем несколько основных понятий:
В игрушке мы управляем красной птичкой. Задача каждого этапа: добраться птичкой до свиньи. Птичка умеет выполнять определённые команды, например: переместить вперёд, повернуть налево, повернуть направо и др.
Необходимо заострить внимание на нескольких моментах.
Исполнитель может выполнять только те команды, которые входят в его систему команд.
Это означает, например, что нельзя написать исполнителю-птичке: «Иди к свинье!». Точнее записать можно, но только ничего не произойдёт, т.к. исполнитель таких команд не знает.
Имеющиеся команды вы можете записывать в любом порядке, который посчитаете правильным. Ваша задача как программиста – разделить большую сложную задачу на маленькие отдельные шаги, каждый из которых будет понятен исполнителю. Снова работает принцип «разделяй и властвуй».
Исполнитель выполняет точно то, что предписывает ему алгоритм.
Исполнитель-птичка очень доверчивая. Она не подвергает сомнению то, что вы пишете в программе. Если, например, вы забудете развернуть птичку, то она врежется в стенку. Поэтому вы должны следить за всем самостоятельно.
Ваши будущие программы часто будут работать не так, как вы задумывали. Ошибки случаются у всех. Тут важно понимать, что это не компьютер дурак, а вы допустили ошибку в алгоритме. Не уподобляйтесь плохим программистам, у которых во всём всегда виновата программа.
Теперь от наглядного примера перейдём к компьютерным реалиям. Мы пишем программы для компьютера, а значит, компьютер в нашем случае является исполнителем. Система команд – стандартные функции и конструкции языка Си.
В чём состоит основная задача вашего обучения основам программирования? Овладеть навыком алгоритмического мышления. То есть научиться записывать решение различных задач в виде алгоритма для конкретного исполнителя (в нашем случае компьютера).
Компьютерная программа – алгоритм решения какой-либо задачи, записанный на языке программирования.
Алгоритм – точное описание порядка действий, которые должен выполнить исполнитель для того, чтобы решить задачу.
Исполнитель – человек или некоторое устройство, которое может понимать и выполнять определённый набор команд.
Система команд исполнителя – набор команд, которые понимает и умеет выполнять исполнитель.
Основная задача данного курса – научиться записывать решение различных задач в виде алгоритмов для компьютера.
Практика
Решите предложенные задачи. Для удобства работы сразу переходите в полноэкранный режим
Подборка задач из Единого государственного экзамена на тему Анализ и построение алгоритмов для исполнителей (*.doc) на сайте К.Ю. Полякова. И ответы для самопроверки.
Зеркала на этом сайте: Задачи и ответы (нужный столбец отмечен зелёным цветом)
Дополнительные материалы
Как же в проге ошибку исправить?
Ведь бывает, не ровен же час.
Нажимаю я кнопку «Отправить»
И думаю:»Может сейчас?»
(c) Дроздова Дария Ивановна
Система команд и способы обращения к данным
Вы будете перенаправлены на Автор24
Система команд процессора
В современных компьютерах основным устройством является процессор. Когда мы говорим слово «процессор», то, как правило, подразумеваем центральный процессор компьютера. Однако, кроме центрального процессора существуют специализированные процессоры, которые разработаны под отдельный спектр задач. Например, графический процессор видеокарты решает исключительно задачи ускорения трехмерной графики. У всех процессоров есть одно общее свойство: они умеют выполнять команды специального машинного языка. Машинный язык – это язык, который интерпретируется непосредственно процессором.
Не стоит путать машинный язык с высокоуровневыми языками программирования. Языки программирования не интерпретируются непосредственно процессором. Они гораздо ближе к человеческому естественному языку, а для их интерпретации нужны специальные «посредники», переводящие языки программирования на машинный язык.
Машинные языки разных процессоров отличаются, поскольку отличаются сами конструкции процессоров и их задачи. Поэтому к любому процессору прилагается документация, где подробно описана система команд машинного языка данной модели процессора.
В систему команд входят:
Как правило, в систему команд любого процессора входят следующие основные команды:
Структура команды и обращение к данным
Готовые работы на аналогичную тему
Любая команда состоит из двух частей – операционной и адресной. Операционная часть показывает одно действие из списка допустимых, которое нужно выполнить с данными. Каждая операция имеет свой уникальный код. Адресная часть показывает, где хранятся эти данные и куда записать результат операции.
При этом адресная часть тоже может быть устроена по-разному. В адресной части могут находиться:
Даже одна и та же команда сложения может быть организована и как одноадресная, и как двухадресная и как трехадресная. На первый взгляд, более естественно выглядит именно трехадресный вариант. Однако, это не совсем верно. Дело в том, что трехадресная команда должна содержать адреса трех ячеек. При больших объемах памяти эти три адреса будут занимать много места, и команда будет непомерно длинной. Поэтому трехадресные команды использовались в ранних ЭВМ, но позже были заменены на двухадресные и одноадресные.
Например, одноадресная команда сложения будет выглядеть примерно так:
Выполнение команды разбивается на следующие этапы:
Что такое система команд в информатике
Типовая структура формата команды:
Индексная (автоинкрементная и автодекрементная ) адресация. Её назначение.
При обработке больших массивов данных, выбираемых последовательно друг за другом, нет смысла каждый раз обращаться в память за новым адресом. Для этого достаточно автоматически менять содержимое специального регистра, называемого индексным, чтобы выбирать последовательно размещенные данные. Индексный регистр является косвенным. Его загружают начальным адресом массива(специальной командой). Дальнейшая адресация осуществляется путем автоматического добавления или вычитания единицы или шага адреса из его содержимого.
Рисунок. Формирование адреса операнда при индексной адресации.
Три вида индексных операции:
а) засылка в индексный регистр начального значения
б) изменение индекса
в) проверка окончания циклических вычислений.
Часто в команду с индексной адресацией включают признак, определяющий шаг индексации Т (Т=1,2,4 и т.д.), что позволяет осуществлять адресацию массивов через байт, слово, двойное слово и т.д.
В современных процессорах (например в Intel 80386 и выше) применяют все возможные сочетания из базового адреса, индексного адреса, относительного адреса и шага.
В систему команд традиционно входят такие группы:
· пересылка данных (регистр-регистр, регистр-память, память-регистр, специфические команды типа память-память);все команды пересылки выполняют, по сути, копирование данных из ячейки-источника в ячейку-приемник;
· ввод-вывод – специфические команды для передачи данных между процессором и устройствами ввода-вывода, размещенными в адресном пространстве ввода-вывода;
· передача управления – при выполнении такой команды процессор записывает в счетчик команд PC адрес следующей команды, взятый из адресной части текущей команды;
· специальные – останов, сброс, управление прерываниями, управление режимом пониженного энергопотребления и т.п.
Основные группы команд МП.
По характеру операций различают следующие группы команд:
a) команда арифметических операций для чисел с ПТ и ФТ.
b) команда десятичной арифметики.
c) команда логических операций.
d) команда передачи кодов.
e) команда операций ввода/вывода.
f) команда управления порядком исполнения команд (передача управления).
g) команда управления режимом работы.
Рассмотрим особенности некоторых групп команд.
Команды передачи управления
Модификация РС происходит сразу после выборки команды (или ее байта). Поскольку чаще всего используется естественная адресация команд, то возникает необходимость в командах передачи управления для реализации ветвления алгоритмов. Для этого используются специальные команды :
n команды перехода
n команды замещения
n команды смены состояния процессора
n команды запроса прерывания
1. команды перехода.
Используются команды безусловного и условного переходов.
1.1 Команды безусловного перехода
Переход может осуществляться и переход по косвенному адресу
1.2 Команды условного перехода
Адрес следующей команды зависит от выполнения некоторого условия :
М- код признака ( маска условия )
Команды могут быть с относительной и косвенной адресацией.
Перед выполнением передачи управления содержимое РС, указывающее на следующую команду программы запоминается по адресу, указываемого в команде (обычно регистр или стек). При этом организуется дополнительная команда возврата из подпрограммы, которая восстанавливает содержимое счетчика команд.
Билет 6
————————————————————————————————————————
1. Понятие алгоритма. Исполнитель алгоритма. Система команд исполнителя (на примере учебного исполнителя). Свойства алгоритма. Способы записи алгоритмов; блок-схемы.
————————————————————————————————————————
За время своего существования человечество выработало правила поведения в определенных ситуациях для достижения поставленных целей. Часто эти правила можно представить в виде инструкций, состоящих из последовательно выполняемых пунктов (шагов). Так, например, в первобытном обществе инструкция охотникам по восполнению продовольственных запасов племени могла бы выглядеть следующим образом:
Возможно, что некоторые наскальные рисунки, сделанные до возникновения письменности, представляли собой своеобразную запись таких инструкций.
Что такое алгоритм?
Алгоритм – это понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.
Алгоритм выполняется за определенное количество шагов. Шаг – отдельное законченное действие.
Рассмотрим пример алгоритма для нахождения середины отрезка при помощи циркуля и линейки.
Алгоритм деления отрезка АВ пополам:
1) поставить ножку циркуля в точку А;
2) установить раствор циркуля равным длине отрезка АВ;
3) провести окружность;
4) поставить ножку циркуля в точку В;
5) провести окружность;
6) через точки пересечения окружностей провести прямую;
7) отметить точку пересечения этой прямой с отрезком АВ.
Каждое указание алгоритма предписывает исполнителю выполнить одно конкретное законченное действие. Исполнитель не может перейти к выполнению следующей операции, не закончив полностью выполнения предыдущей. Предписания алгоритма надо выполнять последовательно одно за другим, в соответствии с указанным порядком их записи. Выполнение всех предписаний гарантирует правильное решение задачи. Данный алгоритм будет понятен исполнителю, умеющему работать с циркулем и знающему, что такое поставить ножку циркуля, провести окружность и т. д.
Анализ примеров различных алгоритмов показывает, что запись алгоритма распадается на отдельные указания исполнителю выполнить некоторое законченное действие. Каждое такое указание называется командой. Команды алгоритма выполняются одна за другой. После каждого шага исполнения алгоритма точно известно, какая команда должна выполняться следующей.
Поочередное выполнение команд алгоритма за конечное число шагов приводит к решению задачи, к достижению цели. Разделение выполнения решения задачи на отдельные операции (выполняемые исполнителем по определенным командам) — важное свойство алгоритмов, называемое дискретностью.
Исполнители часто встречаются в сказках. В одной из них Иван-Царевич говорит Избушке-На-Курьих-Ножках: “Избушка, избушка! Встань к лесу задом, ко мне передом!”. При этом команда должна быть задана очень точно, чтобы исполнитель ее понял. В сказке “Али-Баба и сорок разбойников” волшебная дверь открывалась по команде “Сезам, откройся!”. Жадный Касым, тайно проникший в пещеру, забыл эту фразу и не смог выйти из пещеры.
• Исполнитель алгоритма — это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом.
• Система команд исполнителя (СКИ) – это все команды, которые исполнитель умеет выполнять.
Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды.
• Среда исполнителя – обстановка, в которой функционирует исполнитель.
Исполнителями могут быть
Как и любой исполнитель, Робот понимает только ограниченный набор команд, которые входят в его СКИ (список команд исполнителя). Некоторые примеры команд:
направо; повернуться на 90 градусов вправо
налево; повернуться на 90 градусов влево
кругом; развернуться кругом (на 180 градусов)
вперед ( n ); перейти на n клеток вперед
назад ( n ); перейти на n клеток назад
посади; посадить цветы на грядке в том месте, где стоит Робот
В какой форме записываются алгоритмы?
На практике наиболее распространены следующие формы представления алгоритмов:
Графический способ записи алгоритмов
(блок-схема)
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий.
Основные алгоритмические блоки
Начало-Конец (блок начала и конца алгоритма)
Процесс (вычислительное действие или последовательность действий)