Какая информация может содержаться в одной команде программы

Команда ЭВМ представляет собой код, определяющий операцию вычислительной машины, и данные, участвующие в операции. В явной и неявной форме команда содержит также информацию об адресе, по которому помещается результат операции, и об адресе следующей команды.

По характеру выполняемых операций можно выделить следующие группы команд:

  • команды арифметических операций для чисел с фиксированной или плавающей запятой;
  • команды десятичной арифметики;
  • команды передачи данных;
  • команды операций ввода/вывода;
  • команды логических операций;
  • команды передачи управления;
  • команды задания режима работы машины и др.

В команде, как правило, содержатся не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся. Код команды можно представить состоящим из нескольких полей, каждое из которых имеет свое функциональное назначение. В общем случае команда состоит из операционной части, которая содержит код операции и адресной части, содержащей адресную информацию о местонахождении обрабатываемых данных и месте хранения результатов (рис. 8,а).

Рис. 8. Структуры команд: а — обобщенная; б — четырехадресная; в — трехадресная; г — двухадресная; д — одноадресная; е – безадресная. Формат команды — заранее оговоренная структура полей ее кода с разметкой номеров разрядов, определяющих границы отдельных полей команды, или с указанием числа разрядов в определенных полях, позволяющая ЭВМ распознавать составные части кода. Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна, как это показано на рис. 8,б, содержать следующую информацию: А1, А2 — адреса операндов, А3 — адрес результата, А4 — адрес следующей команды (принудительная адресация команд). Такая структура приводит к большей длине команды и неприемлема для прямой адресации операндов основной памяти. В трехадресной команде (рис. 8, в) первый и второй адреса указывают ячейки памяти, в которых расположены операнды, а третий определяет ячейку, в которую помещается результат операции. В случае двухадресной команды результат операции всегда помещается на место одного из операндов, например первого (рис. 8, г), то есть для результата используется подразумеваемый адрес. В одноадресной команде (рис. 8, д) подразумеваемые адреса имеют уже и результат операции, и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумулятором. Результат операции записывается в тот же регистр. В безадресных командах (рис. 8, е) подразумеваются адреса обоих операндов и результата операции, например, при работе со стековой памятью. Обычно в ЭВМ используется несколько структур и форматов команд разной длины. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в командах способами адресации. Существует два различных принципа поиска операндов в памяти: ассоциативный и адресный. Ассоциативный поиск операнда (поиск по содержанию ячейки) предполагает просмотр содержимого всех ячеек памяти для выявления кодов, содержащих заданный командой ассоциативный признак. Эти коды и выбираются из памяти в качестве искомых операндов. Адресный поиск предполагает, что искомый операнд извлекается из ячейки, номер которой формируется на основе информации в адресном поле команды. Следует различать понятия исполнительного адреса и адресного кода. Адресный код (АК) – это информация об адресе операнда, содержащегося в команде. Исполнительный адрес (АК)– это номер ячейки памяти, к которой фактически производится обращение. В большинстве ЭВМ адресный код, как правило, не совпадает с исполнительным адресом. Таким образом, способ адресации можно определить как способ формирования исполнительного адреса операнда Аи по адресному коду команды Ак. В системах команд современных ЭВМ часто предусматривается возможность использования нескольких способов адресации операндов для одной и той же операции. Адресуемые в командах операнды хранятся в основной памяти (ОП) и регистровой памяти (РП) (рис.9). Рис. 9. Схема хранения в памяти адресуемых операндов По наличию адресной информации в команде различают явную и неявную адресацию. При явной адресации операнда в команде есть поле адреса этого операнда, в котором задается адресный код Ак. При неявной адресации адресное поле в команде отсутствует, адрес операнда подразумевается кодом операции. Основное назначение метода неявной адресации — уменьшение длины команды за счет исключения части адресов. При этом методе код операции точно задает адрес операнда. Например, из команды исключается адрес приемника результата. При этом подразумевается, что результат в этой команде помещается на место второго операнда. По кратности обращения в память (R) различают непосредственную (R = 0), прямую (R = 1) и косвенную (R > 2) адресацию. При этом непосредственной адресации операнд располагается в адресном поле команды. Обращение к регистровой памяти (РП) или оперативной памяти (ОП) не производится. Непосредственная адресация удобна для задания констант, длина которых меньше или равна длине адресного поля команды. При прямой адресации (рис. 10) обращение за операндом в РП или ОП производится по адресному коду в поле команды, то есть исполнительный адрес операнда совпадает с адресным кодом команды (Аи = Ак).
Рис.10. Схема прямой адресации При косвенной адресации адресный код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а лишь адрес операнда, называемый указателем операнда. Адресация к операнду через цепочку указателей (косвенных адресов) называется косвенной. Косвенная адресация обеспечивает переадресацию данных, т.е. упрощает обработку массивов и списковых структур данных, упрощает передачу параметров подпрограммам, но не обеспечивает перемещаемость программ в памяти (рис. 11). Способы формирования адресов ячеек памяти (Аи) разделяются на абсолютные и относительные. Абсолютные способы формирования предполагают, что двоичный код адреса ячейки памяти — Аи может быть извлечен целиком либо из адресного поля команды (в случае прямой адресации), или из какой-либо другой ячейки (в случае косвенной адресации), никаких преобразований кода адреса не производится.
Рис. 11. Косвенная адресация Относительные способы формирования Аи предполагают, что двоичный код адреса ячейки памяти образуется из нескольких составляющих: Б — код базы, И — код индекса, С — код смещения, используемых в сочетаниях (Б и С), (И и С), (Б, И и С). При относительной адресации применяются два способа вычисления адреса Аи:

  • суммирование кодов составляющих адреса (Аи = Б + С; Аи — И + С; Аи = Б + И + С);
  • совмещение (конкатенация) кодов составляющих адреса (Аи = Б/С).
Читайте также:
Что такое конвейер и как он работает при выполнении программы

При базировании способом суммирования в команде адресный код Ак разделяется на две составляющие: Аб — адрес регистра в регистровой памяти, в котором хранится база Б (базовый адрес) и С — код смещения относительно базового адреса (рис. 12).

Рис. 12. Схема формирования относительного адреса способом суммирования кодов базы и смещения. СМ – сумматор, РАОП – регистр адреса ОП, Б – база (базовый адрес), С – смещение, Аб – адрес регистра базы. С помощью метода относительной адресации удается получить перемещаемый программный модуль, который одинаково выполняется процессором независимо от адресов, в которых он расположен. Начальный адрес программного модуля (база) загружается при входе в модуль, в базовый регистр. Все остальные адреса программного модуля формируются через смещение относительно начального адреса (базы) модуля. Таким образом, одна и та же программа может работать с данными, расположенными в любой области памяти, без перемещения данных и без изменения текста программы только за счет изменения содержания всего одного базового регистра. При базировании способом совмещения составляющих для увеличения емкости адресной ОП без увеличения длины адресного поля команды для формирования исполнительного адреса используется совмещение (конкатенацию) кодов базы и смещения (рис. 13).
Рис. 13. Схема формирования относительного адреса способом совмещения кодов базы и смещения. Для работы программ с массивами, требующими однотипных операций над элементами массива, удобно использовать индексную адресацию. Схема индексной адресации аналогична базированию путем суммирования. В этом случае адрес i-гo операнда в массиве определяется как сумма начального адреса массива (задаваемого полем смещения С) и индекса И, записанного в одном из регистров РП, называемом теперь индексным регистром. Адрес индексного регистра задается в команде полем адреса индекса — Аин (аналогично Аб ). В каждом i-м цикле содержимое индексного регистра изменяется на величину постоянную (часто равную 1). Использование индексной адресации значительно упрощает программирование циклических алгоритмов. Достаточно часто при относительной адресации применяется комбинированная индексация с базированием, при которой адрес операнда вычисляется как сумма трех величин (рис. 14) Аи = Б + И + С. Аи — адрес индексного регистра. Рис.14. Схема формирования дополнительного адреса при индексной адресации и базировании

Читайте также:
Перечень всех целевых программ

Система кодирования команд и способы адресации

Как через картинку проникнуть в компьютер ? (разбираем и защищаемся)

Источник: studfile.net

§ 2.5. Алгоритмы управления

Информатика 9 класс Босова § 2.5. Алгоритмы управления

Управление — это процесс целенаправленного воздействия на объект; осуществляется для организации функционирования объекта по заданной программе.

§ 2.5. Алгоритмы управления

В середине прошлого века выдающийся американский учёный Норберт Винер (1894—1964), изучавший различные технические и биологические системы, установил, что управление в них осуществляется по общей схеме. Винер считается основоположником науки об управлении — кибернетики.

Управляемым объектом (объектом управления) может быть техническое устройство (например, автомобиль), один человек (например, ученик, солдат) или коллектив (например, оркестр, работники предприятия).

Управляющим объектом (управляющей системой) может быть человек (например, шофёр, дирижёр оркестра, учитель, директор), коллектив (например, правительство, парламент), а может быть и техническое устройство (например, автоматический регулятор, компьютер).

Последовательность команд по управлению объектом, приводящая к заранее поставленной цели, называется алгоритмом управления.

Простейшие алгоритмы управления могут состоять из одной команды или представлять собой линейную последовательность команд. Более сложные алгоритмы управления содержат ветвления и циклы.

Обратная связь. Алгоритмы управления

Для управления нужна информация. Во-первых, управляющий объект должен получить информацию о том, что ему нужно, т. е. он должен знать цель своих действий. Во-вторых, управляющий объект должен знать, как можно достичь поставленной цели. Важно, что информация о цели и способах её достижения должна быть известна управляющему объекту до начала процесса управления.

Пример 1. Рассмотрим управление движением автомашин (объект управления) на перекрёстке с помощью светофора (управляющий объект). В этой ситуации управляющее воздействие формируется в зависимости от заложенной в управляющем объекте исходной информации. Светофор не воспринимает текущую информацию о состоянии движения на перекрёстке, он не изменяет алгоритм управления от того, что с какой-то стороны скопилось очень много машин и образовалась «пробка».

Обратная связь — это процесс передачи информации о состоянии объекта управления в управляющую систему.

Обратная связь позволяет корректировать управляющие воздействия управляющей системы на объект управления в зависимости от состояния объекта управления (рис. 2.5). Обратная связь предусмотрена в ряде бытовых приборов (например, утюг с терморегулятором, холодильник, кастрюля-скороварка), в живых организмах, в обществе.

§ 2.5. Алгоритмы управления

В настоящее время очень часто роль управляющей системы отводится компьютеру, в память которого заложена программа управления, предусматривающая все варианты информации, которые могут быть получены по обратной связи.

Пример 2. Если вместо обычного светофора на дорожном перекрёстке будет установлен «интеллектуальный» светофор — высокотехнологичное устройство, оснащённое датчиками, фиксирующими скорость движения на дороге и плотность транспортных потоков, то управление движением станет более рациональным за счёт учёта информации, поступающей от объекта управления.

САМОЕ ГЛАВНОЕ

Управление — процесс целенаправленного воздействия на объект; осуществляется для организации функционирования объекта по заданной программе.Последовательность команд по управлению объектом, приводящая к заранее поставленной цели, называется алгоритмом управления.

Вопросы и задания к § 2.5. Алгоритмы управления

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Какими слайдами вы могли бы дополнить презентацию?

Источник: murnik.ru

Команды и адресация в микропроцессоре: форматы, структура, схемы

Команды в микропроцессоре

Входное воздействие в виде двоичного кода, предназна­ченное для управления микропроцессором, называется командой. Ее главная функция — выполнение операций над данными. Команда предписывает шаги по реализации микропроцессором заданной операции, представляющей собой функционально завершенное действие, которое определяется типом использу­емых данных, источником их получения, операцией над ними, приемником разме­щения результата, источником получения следующей команды. Машинное представление команды в памяти, состоящее из ряда нулей и единиц, называет­ся объектным кодом команды. Для лучшего восприятия команды используется ее символическое обозначение или мнемокод.

Каждая команда должна содержать сведения, необходимые для ее выполне­ния. Сведения кодируются. Для кодировки каждой группы сведений выделяется свое поле. Совокупность полей, содержащих необходимые сведения для выпол­нения требуемой операции, называют форматом команды. В формате команды должны быть определены:

● функциональное назначение операции в виде кода операции;

● адреса источников данных. В общем случае должны быть указаны адреса двух операндов;

● адрес места расположения результата;

Читайте также:
Если лагерь не входит в программу кэшбэк

● адрес следующей команды.

Способы уменьшения формата команды.

Рассмотрим гипотетическую ситуацию. Допустим, что в формате команды:

● поле кода операций (КО) занимает 4 разряда, что позволяет закодировать 2 4 = 16 операций;

● под адреса двух операндов–источников, адрес места расположения результа­та, адрес следующей команды выделены поля А O 1, А O 2, АР, АСК (рис. 2.7.1) по 12 разрядов, что позволяет в каждом случае адресовать 2 12 = 4К ячеек памяти.

рис. 2.7.1

Как видно из рис. 2.7.1, несмотря на скромные возможности команды, ее об­щая длина составляет достаточно большое число (52) бит. Для сокращения коли­чества разрядов команды часть информации должна быть задана неявно и не должна зависеть от особенностей конкретной команды.

Наиболее употребительными являются следующие способы сокраще­ния длины кода команды:

● использование специально предусмотренных для адресации регистров: про­граммного счетчика, указателя стека и др. Например, при выполнении ко­манд с последовательно возрастающими адресами программный счетчик ав­томатически считывает из памяти следующую команду. В этом случае в фор­мате команды отсутствует поле адреса следующей команды;

● использование неявных способов адресации. Например, при использовании неявной регистровой адресации адрес следующей команды или операнда хранится в регистре, код которого содержит значительно меньшее число раз­рядов, чем код исполнительного адреса;

● совмещение источника одного из операндов с приемником результата. В этом случае в формате команды исключается поле адреса результата;

● использование команд с укороченной адресацией, т. е. части адресного про­странства памяти;

● использование для некоторой группы операций одного регистра. Наиболее часто для этой цели используется аккумулятор. В операциях с аккумулятором не требуется его кодировка. Например, команда ADD

В выполняет операцию сложение содержимого регистра В с аккумулятором А и в него же помещает результат. Такая команда является одноадресной. Ее формат состоит из двух полей: кода операции и адреса операнда. Однако одноадресные команды требуют дополнительных команд для предварительной загрузки операндов в аккумулятор и последующего размещения результатов в памяти;

● использование нескольких аккумуляторов (Motorola 6800, National РАСЕ, Signetic 2650). В этом случае каждая команда имеет два адреса, однако ад­рес источника и места назначения может быть задан другим аккумулятором. Следует отметить, что в одних процессорах все команды имеют одинаковую длину, в других — разную длину.

Одинаковая длина всех команд упрощает деко­дирование, однако требует большего пространства, поскольку все команды долж­ны быть такой же длины, как самая длинная. Команды могут быть короче слова, равными слову или длиннее слова. В процессорах с неймановской архитектурой команды и данные имеют одинаковую длину и поступают в процессор по шине данных. Поэтому для отличия команд отданных в процессоре предусмотрены средства, обеспечивающие:

● засылку команд (первого байта) в регистр команд с дальнейшей их дешифра­цией для активизации устройства управления;

● поступление данных (последующих байт) в аккумулятор или другие регистры для обработки в АЛУ.

Форматы команд некоторых процессоров.

Рассмотрим в общих чертах форматы команд 8–разрядного (8080) и 16–разрядного (8086) процессоров. Дли­на команды кратна байту и может составлять один, два и более байт.

Достаточно простые форматы имеют команды процессора 8080 (рис. 2.7.2). Длина команд составляет от 1 до 3 байт. Код операции всегда размещается в первом байте команды. Второй и третий байты отводятся под непосредствен­ные данные, адрес порта или ячейки памяти.

В командах допускается явное зада­ние только одного адреса памяти. Поэтому система команд процессора 8080 от­носится к классу одноадресных.

рис. 2.7.2

На рис. 2.7.3 изображены форматы команд процессора 8086. Длина команд составляет от 1 до 6 байт.

рис. 2.7.3

На рис. 2.7.2 и 2.7.3 обозначено: ОР — код операции; X — биты кода опера­ции; dst , src — указатели приемника и источника данных; port — адрес порта; data — данные; addr — адрес памяти; w — тип операнда ( w = 0 — байт, w = 1 — слово); d — направление передачи ( d = 0 — «из», d = 1 — «в»); s — признак рас­ширения байта в слово; reg — трехразрядное поле для кодирования регистров AL–BH; seg — двухразрядное поле для кодирования сегментных регистров; mod — определяет режим, заданный полем r / m (регистр/память); port 8 — корот­кий 8–разрядный адрес порта; disp — смещение; offset — смещение; sel — селек­тор; vect — вектор прерывания; v — сдвиговый флаг; cc — 4–разрядное поле, для кодирования 16 условий перехода.

Источник: pue8.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru