Какого рода информацию может содержать адресная часть команды кратко

Обновлено: 03.07.2024

Принцип однородности памяти. Программы и данные хранятся в одной и той же памяти. Поэтому компьютер не различает, что хранится в данной ячейке памяти — число, текст или команда. Над командами можно выполнять такие же действия, как и над данными. Это открывает целый ряд возможностей. Например, программа в процессе своего выполнения также может подвергаться переработке, что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется выполнение циклов и подпрограмм). Более того, команды одной программы могут быть получены как результаты исполнения другой программы. На этом принципе основаны методы трансляции — перевода текста программы с языка программирования высокого уровня на язык конкретной машины.

13. В чём заключается принцип адресности?

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

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

14. Какие архитектуры называются "фон-неймановскими"?

Классическая архитектура (архитектура фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд — программа. Это однопроцессорный компьютер. К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной, подробно рассмотренная в разделе 2.18 (рис. 2.26). Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью.

15. Что такое команда? Что описывает команда?

Команда — это описание элементарной операции, которую должен выполнить компьютер.

В зависимости от количества операндов, команды бывают:

16. Какого рода информацию может содержать адресная часть команды?

- сам операнд (число или символ);

- адрес операнда (номер байта, начиная с которого расположен операнд);

- адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда), и др

17. Приведите примеры команд одноадресных, двухадресных, трёхадресных.

- одноадресная команда add x (содержимое ячейки x сложить с содержимым сумматора, а результат оставить в сумматоре)

- двухадресная команда add x, y (сложить содержимое ячеек x и y, а результат поместить в ячейку y)

- трехадресная команда add x, y, z (содержимое ячейки x сложить с содержимым ячейки y, сумму поместить в ячейку z)

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

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

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

Общая структура команды имеет следующий вид:


Операционная часть содержит код операции и задает вид операции (+, -, *, /. )

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

Формат команды это структура команды с разметкой номеров разрядов, определяющих - границы отдельных полей команды.

Структура команды очень сильно влияет на производительность МП:

Необходима как можно более короткая длина команды для большего числа операций или адресной информации.

Чем больше команда, тем больше времени уходит на ее считывает и дешифрирование.

Однако, очень часто система команд достаточно велика, и разрядность ША составляет до 128 разрядов. Все это приводит к появлению очень длинных команд и снижению эффективности.

Если МП может выполнять М операций, то:

Количество бит КОП для М=200: nкоп=8

Если ОП имеет S адресуемых ячеек, то для представления адреса одного операнда необходимо:

Кроме того, длина команд должна быть согласована с длиной обрабатываемых МП-ом данных (упрощается аппаратура). Это, как правило, приводит к длине команд, кратным разрядности шины данных.

Обработка информации в ЭВМ осуществляется путём программного управления.

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

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

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

¨ команды арифметических операций для чисел с фиксированной или плавающей запятой;

¨ команды десятичной арифметики;

¨ команды передачи данных (MOV AX, 0FFFh);

¨ команды операций ввода/вывода (IN, OUT);

¨ команды логических операций (AND, OR, NOT);

¨ команды передачи управления (управление циклом – LOOP, условные переходы – JAE, JB);

¨ команды задания режима работы машины и др.

Форматы команд ЭВМ

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

В общем случае команда состоит из:

¨ операционной части (содержит код операции);

¨ адресной части (содержит адресную информацию о местонахождении обрабатываемых данных и месте хранения результатов).

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

Структура команды определяется составом, назначением и расположением полей в коде.

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

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

Проследим изменения классических структур команд.

Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна, как это показано на рис. 1 (б), содержать следующую информацию: А1, А2 - адреса операндов, А3 - адрес результата, А4 - адрес следующей команды (принудительная адресация команд).

Рис. 1. Структуры команд: а) обобщенная, б) четырехадресная, в) трехадресная, г) двухадресная, д) одноадресная, е)безадресная

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

Можно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной по адресу К (и занимающей L ячеек), выполняется команда из ( K + L )-ой ячейки. Такой порядок выборки команды называется естественным. Он нарушается только специальными командами (передачи управления). В таком случае отпадает необходимость указывать в команде в явном виде адрес следующей команды.

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

Можно условиться, что результат операции всегда помещается на место одного из операндов, например первого. Получим двухадресную команду (рис. 1, г), т.е. для результата используется подразумеваемый адрес.

В одноадресной команде (рис. 1, д) подразумеваемые адреса имеют уже и результат операции и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумулятором. Результат операции записывается в тот же регистр.

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

С точки зрения программиста, наиболее естественны и удобны трехадресные команды. Обычно в ЭВМ используется несколько структур и форматов команд разной длины. Приведенные на рис. 1. структуры команд достаточно схематичны. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в командах способами адресации.


Способы адресации

Существует два различных принципа поиска операндов в памяти: ассоциативный и адресный.

Ассоциативный поиск операнда (поиск по содержанию ячейки) предполагает просмотр содержимого всех ячеек памяти для выявления кодов, содержащих заданный командой ассоциативный признак. Эти коды и выбираются из памяти в качестве искомых операндов.

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

Следует различать понятия исполнительного адреса и адресного кода.

Адресный код – это информация об адресе операнда, содержащегося в команде.

Исполнительный адрес – это номер ячейки памяти, к которой фактически производится обращение.

В современных ЭВМ адресный код, как правило, не совпадает с исполнительным адресом. Таким образом, способ адресации можно определить как способ формирования исполнительного адреса операнда А и по адресному коду команды А к .

Адресуемые в командах операнды хранятся в основной памяти (ОП) и регистровой памяти (РП), рисунок 2.


Рис. 2. Память для хранения адресуемых операндов

Рассмотрим способы адресации, применяемые в современных ЭВМ.

Классификация способов адресации по наличию адресной информации в команде

По наличию адресной информации в команде различают явную и неявную адресацию.

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

При неявной адресации адресное поле в команде отсутствует, адрес операнда подразумевается кодом операции.

Метод неявной адресации операндов используется во всех процессорах. Основное его назначение - уменьшение длины команды за счет исключения части адресов. При этом методе код операции точно задает адрес операнда. Например, из команды исключается адрес приемника результата. При этом подразумевается, что результат в этой команде помещается на место второго операнда.

Классификация способов адресации по кратности обращения в память

Широко используются следующие методы адресации операнда с различной кратностью обращения ( R ) в память:

1. Непосредственная ( R = 0).

3. Косвенная ( R > 2).

Непосредственная адресация операнда. При этом способе операнд располагается в адресном поле команды. Обращение к регистровой памяти (РП) или оперативной памяти (ОП) не производится. Таким образом, уменьшается время выполнения операции, сокращается объем памяти. Непосредственная адресация удобна для задания констант, длина которых меньше или равна длине адресного поля команды.

Рис. 3. Непосредственная адресация


Прямая адресация операндов . При этом способе (рис. 4) адресации обращение за операндом в РП или ОП производится по адресному коду в поле команды, т.е. исполнительный адрес операнда совпадает с адресным кодом команды (А и = А к ).

Рис. 4. Схема прямой адресаций

Косвенная адресация операндов. При этом способе адресный код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а лишь адрес операнда, называемый указателем операнда. Адресация к операнду через цепочку указателей (косвенных адресов) называется косвенной.

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

Если последняя команда не является командой перехода, процессор увеличивает на единицу (в предположении, что длина каждой команды равна единице) число, хранящееся в счётчике команд; в результате там образуется адрес следующей команды

Снова выполняется п. 1

Данный цикл выполняется неизменно и бесконечно, и именно он называется процессом (откуда и произошло название устройства).

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

Скорость перехода от одного этапа цикла к другому определяется тактовым генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для центрального процессора. Частота тактовых импульсов называется тактовой частотой.

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

Машинная операция – это действия машины по преобразованию информации, выполняемые под воздействием одной команды.

В общем виде машинная команда имеет структуру, изображенную на рис. 5.1.

Рисунок 21.1 - Общая структура

Операционная часть – содержит код, который задает вид операции (сложение, умножение, передача и т.д.).

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

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

операции пересылки информации внутри компьютера;

арифметические операции над информацией;

логические операции над информацией;

операции над строками (текстовой информацией);

операции обращения к внешним устройствам компьютера;

операции передачи управления;

обслуживающие и вспомогательные операции.

Адресный код (АК) – это информация об адресе операнда, содержащаяся в команде.

Исполнительный адрес (АИ) – это номер ячейки ОП, к которой производится фактическое обращение.

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

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

Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд.

Относительная адресация, или базирование. Исполнительный адрес (АИ) определяется как сумма адресного кода команды (АК) и некоторого числа АБ, называемого базовым адресом. АИ = АБ + АК.

Регистровая адресация. Это частный случай так называемой укороченной адресации, суть которой сводится к тому, что используется только небольшая группа фиксированных ячеек памяти с начальными (короткими) адресами (0000001, 0000010, 0000011 и т.д.). Такая адресация используется только совместно с другими типами адресации.

Косвенная адресация. Адресный код (АК) команды указывает адрес ячейки ОП, в которой находится исполнительный адрес (АИ) операнда или команды.




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

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

Стековая адресация. При рассмотрении устройств памяти отмечалось, что основной принцип работы стекового ЗУ соответствует правилу: "последний пришел – первый ушел" (имеется в виду стек LIFO). Это правило реализуется автоматически. Поэтому при операциях со стеком возможно безадресное задание операнда – команда не содержит адреса ячейки стека, а содержит только адрес (или он подразумевается) регистра или ячейки ОП, откуда слово загружается в стек или куда выгружается из стека.

Процессор выставляет число, хранящееся в регистре счётчика команд, на шину адреса, и отдаёт памяти команду чтения

Выставленное число является для памяти адресом; память, получив адрес и команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных, и сообщает о готовности

Процессор получает число с шины данных, интерпретирует его как команду (машинную инструкцию) из своей системы команд и исполняет её

Если последняя команда не является командой перехода, процессор увеличивает на единицу (в предположении, что длина каждой команды равна единице) число, хранящееся в счётчике команд; в результате там образуется адрес следующей команды

Снова выполняется п. 1

Данный цикл выполняется неизменно и бесконечно, и именно он называется процессом (откуда и произошло название устройства).

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

Скорость перехода от одного этапа цикла к другому определяется тактовым генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для центрального процессора. Частота тактовых импульсов называется тактовой частотой.

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

Машинная операция – это действия машины по преобразованию информации, выполняемые под воздействием одной команды.

В общем виде машинная команда имеет структуру, изображенную на рис. 5.1.

Рисунок 21.1 - Общая структура

Операционная часть – содержит код, который задает вид операции (сложение, умножение, передача и т.д.).

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

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

операции пересылки информации внутри компьютера;

арифметические операции над информацией;

логические операции над информацией;

операции над строками (текстовой информацией);

операции обращения к внешним устройствам компьютера;

операции передачи управления;

обслуживающие и вспомогательные операции.

Адресный код (АК) – это информация об адресе операнда, содержащаяся в команде.

Исполнительный адрес (АИ) – это номер ячейки ОП, к которой производится фактическое обращение.

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

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

Непосредственная адресация. В команде содержится не адрес операнда, а непосредственно сам операнд.

Относительная адресация, или базирование. Исполнительный адрес (АИ) определяется как сумма адресного кода команды (АК) и некоторого числа АБ, называемого базовым адресом. АИ = АБ + АК.

Регистровая адресация. Это частный случай так называемой укороченной адресации, суть которой сводится к тому, что используется только небольшая группа фиксированных ячеек памяти с начальными (короткими) адресами (0000001, 0000010, 0000011 и т.д.). Такая адресация используется только совместно с другими типами адресации.

Косвенная адресация. Адресный код (АК) команды указывает адрес ячейки ОП, в которой находится исполнительный адрес (АИ) операнда или команды.

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

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

Стековая адресация. При рассмотрении устройств памяти отмечалось, что основной принцип работы стекового ЗУ соответствует правилу: "последний пришел – первый ушел" (имеется в виду стек LIFO). Это правило реализуется автоматически. Поэтому при операциях со стеком возможно безадресное задание операнда – команда не содержит адреса ячейки стека, а содержит только адрес (или он подразумевается) регистра или ячейки ОП, откуда слово загружается в стек или куда выгружается из стека.

Читайте также: