Всё для Учёбы — студенческий файлообменник
1 монета
pdf

Студенческий документ № 040831 из МГВМИ

1 Система коман ЭВМ и а еса ия опе ан ов

1, Типы команд

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

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

Набор команд ЭВМ обычно включает в себя большое КОЛИЧССТВО (от нескольких десятков до сотен) команд различного назначения. Назначение команд существенным образом влияет на способы их кодирования и длину.

По характеру выполняемых операций различают следующие основные группы команд: команды арифметических операций, команды логических (поразрядных) опер& ций (И. ИЛИ, НЕ и др.), команды пересылки кодов между компонентами ЭВМ, команды управления порядком выборки и исполнения команд (команды передачи управления), команды задания режима работы процессора и др.

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

Код операции

Рис. 1 Каждая из этих частей, в свою очередь, может состоять из нескольких полей. Это особенно характерно для адресной части.

Операционная часть содержит код операции (КОН), который задаст вид операции (сложснис, пересылка, переход и т.д.). АДресная ЧиСТЬ команды содержит информацию о местонахождении (адресах) операндов и результата операции, а в некоторых случаях и об адресе следующей команды. Форматом команДы. называют разметку номеров разрядов (бит) кода команды, определяющих расположение и границы отдельных полей команды.

Простейшим типом команд являются так называемые безаДресные колпшДы,

т.е. команды, для выполнения которых операнды не требуются. Типичные команды такого типа это: ОСТАНОВ (ГЛЕТ), ОЖИДАНИЕ ВНЕШНИХ СОБЫТИЙ ОПЕРАЦИИ и др. У этих команд всё, отводимое под команду машинпос слово представляет собой код операции.

Более СЛОжНЫМИ типами колшнД являются команды, для выполнения которых требуется один ИЛИ несколько операндов. В этом случае при КОДИРОВ[ШИИ команды, помимо кода, описывающего ВЫПОЛНЯеМУЮ командой функцию, необходимо тем или иным образом указывагь участвующие в операции входные операнды (операнды - источники данных) или их местонахождение (в регистрах или памяти), а также место, куда должен быть помещен результат операции (обычно называемый приемником данных).

В связи с этим, в зависимости от количества операнДов, в ЭВМ можно представить следующие типы разновиДности кОлшнД:

е оДноаДресные команДы, оперирующие только одним операндом (например, команды ОЧИСТИТЬ ЯЧЕЙКУ ПАМЯТИ, УВЕЛИЧИТЬ ЗНАЧЕНИЕ ЯЧЕЙКИ НА ЕДИНИЦУ, ИЗМЕНИТЬ ЗНАК ЧИСЛА и другие;

Двухадресные команДы, для работы которых необходимо указание двух адресов (например, команда КОПИРОВАТЬ СОДЕРЖИМОЕ ОДНОЙ ЯЧЕЙКИ В ДРУГУЮ):

трехск)ресные команды, например команда СЛОЖИТЬ СОДЕРЖИМОЕ ДВУХ ЯЧЕЕК И РЕЗУЛЬТАТ ПОМЕСТИТЬ ПО ТРЕТЬЕМУ АДРЕСУ;

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

Для адресации каждого операнда в коде КОМ{ШДЫ выделяется специальное поле (несколько разрядов). Очевидно, что количество указываемых в команде операндов и способ указания их адресов существенным образом влияют на длину команды (количество разрядов необходимых для кодирования команды). В связи с этим во многих ЭВМ ограничиваются оДноаДресными и Двухас)ресными команДами. В этом случае, как, например, в команде сложения, требующей указания адресов двух входных операндов и третьего адреса для помещения результата операции, ограничиваются указанием только двух адресов, помещая результат операции, т.е. операнд-приемник, по адресу одного из двух входных операндов-источников, естественно, что при этом после выполнения операции значение одного из операндов будет утеряно.

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

2. Способы адресации операндов

Следует различать понятия аДресныЙ код в команде и исполнительныЙ адрес. Адресный код - это информация об аДресе операнда, содержащаяся в команде. Исполнительный адрес это сам адрес (номер) ячейки памяти, к которой производится фактическое обращение. Как правило, адресный код пе совпадает с исполнительным адресом.

Рассмотрим методы адресации, используемые в современных ЭВМ.

ПоДразумеваемый оперит). В команде нс содержится ЯВНЫХ указаний об адресе операнда; операнд подразумевается и фактически задастся кодом операции команды. Например, в команде УВЕЛИЧИТЬ ЧИСЛО ПА ЕДИНИЦУ первый операнд (увеличиваемое число должен адресоваться явНым образом), а второй (приращение на единицу) не адресуется, в памяти ЭВМ не содержится и ЯВЛЯСТСЯ подразумеваемым.

ПоДразумеваемый адрес. В команде не содержится явных указаний об адресе участвующего в операции операнда ИЛИ адреса, ПО которому помешается результат операции, но этот адрес подразумевается. Например, команда может содержать адреса обоих операндов, участвующих в операции, при этом подразумевается, что результаг операции помсщастся по адресу одного из операндов, или команда указывает только адрес одного операнда, а адрес второго, которым является содержимое специального регистра емого регистром результата или аккумулятором), подразумевается. Аналогично в самой

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

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

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

Регистровая аДресация. При адресации операнда используется содержимое указанного в команде какого-либо регистра процессора.

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

Ниже рассматривается использование для реализации различных методов адресации регистров процессора.

30 Режимы адресации с помощью регистров общего назначения (РОН)

З 1 . Регистровый метоД аДРеСШ4ИИ

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

рон Рис.2

302. метоД аДресацни

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

рои

Рис.3 3.3. Автоинкрементный метоД аДресации (аДресация с автоузеличением)

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

394. Косвенно -автоишрементньи7метоД аДресации

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

3.5 АвтоДекремеппшый летоДаДресацин (ск)ресация с автоуменьшением).

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

3,60 Косвенно - автоДекрементный метоД аДресации

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

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

3.7. Косвенная адресация со сјиещением (ИНДеКСНЫЙ метоД аДресации).

При использовании этого метода адресации инструкция (команда) занимает в памяти на одно слово (ячейку) больше. В дополнительном слове команды указывается так называемое смещение (индексное слово). Исполнительный адрес операнДа опреДе.чяется в этом случае как сумма соДерлсимого указанного в команДе регистра и смещения (инДексного слова)

Рис.4

Т.е. число, находящееся во втором слове команды, указывает смсщсние фактического исполнительного адреса операнда относительно адреса, содержащегося в указанном в команде регистре общего назначения. Это смещение может быть как ПОЛОЖИТСЛЬПЫМ числом, так и отрицательным, т.е. сдвигагь указанный в регистре адрес, как в сторону старших адресов, так и в сторону младших адресов. Ссыпку на содержимое данного регистра как на базовый адрес могут осуществлять и другие команды, используя при этом свои значения фактического смещения адреса.

4, Режимы адресации со ссылкой на регистр-счетчик команд

В этих режимах адресации при формировании исполнительного адреса операнда используется текущее содержимое регистра-счетчик•а команД.

41. НепосреДственный метоД аДресации

При использовании этого режима адресации операнД указывается непосреДственно в комсшДе, после кода операции. Процессор получает в этом случае адрес операнда непосредственно из своего регистра-счетчика команд.

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

42. Абсолютный метоД аДресаЦИИ

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

адреса

о пе, ра вда

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

4,3. метоД аДресацин

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

50 Стеке Организация стека в памяти ЭВМ

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

Доступ тс ячейкам стека осуществляется не по аДрессьи, ячеек, а только через так называемую "вершину стека" ячейку памяти стека, доступную в данный момент време" ни.

При послеДовательной записи Данных (кодов, чисел) 6' стек, загружаемые Данные послеДовательпо помещаются на "вершину стека", при этом ранее .ЗШ1И(ХТНЫС значения как бы проталкиваются вглубь стека. В ка:лсДый момент времени для чтения в стеке Доступно ТОЛЬКО СлОВО, пахоДящееся на его вершине. При этом прочитать СИО(Ю, нагоДящееся на вершине стека, можно только один раз, так как ПОСУШ чтения это слово "выталкивается" из стека и па его вершине оказывается СЛОВО, записанное перед (Sbl" тачкнутым. Таким образом, записанные стек, Данные могут быть пос.чеДовсппельно прочитаны только 6' поряДке, обратном поряДку их записи 6' стек путем посиеДовательного "выталкивания" этих Данных из глубины стека на его вершину. При этом информация о вытолкнутых Данных теряется.

Обычно такой способ доступа к данным КОРОТКО формулируют в виде: "посчеДпим пришел - первый вышел".

Аналогично еще один используемый в ЭВМ способ организации данных, называемый очередью, формулируют в виде: "первым пришел - первым вышел" (или "послеДним пришел - послеДним вышел").

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

При работе со стеком соДер:усимое регистра указателя стека интерпретируется процессором как адрес "вершины стека". Более точно как адрес выделетк ной под стек ячейки памяти, в которой находится число, записанное в стек последним. В связи с этим процедура начальной установки состояния стека использующей сго программой (определение выделяемой под стек области памяти) состоит в начальной устае новке регистра - указателя стека, а именно, записи в пего адреса ячейки памяти, являю" щсйся "вершиной" пустого стека. Общепринятым является заполнение стека данными в сторону уменьшения адресов его ячеек.

Запись числа в стек, организованный в памяти ЭВМ, иллюстрируется на рис.8.

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

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

загрузки

УС УС чис ла

На.МЯТЬ 770

772 774 776 Рис. 8 Запись в стек

Метод адресации ячеек памяти, который ИСПОЛЬЗустся при засылке чисел в стек, носит название аДресация через регистр (6 Данном случае указатель стека) с преДваршпельным автоуме,ньшением его (рассмотренный вышс автодекремснтпый метод адресации), В некоторых ЭВМ такая адресация может ИСПОЛЬЗОВТГЬСЯ с любым из регистров общего назначения процессора.

Чтение информации из стека или, как еще говорят, выталкивание числа из стека происходит следующим образом (см. рис. 9).

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

Рис. 9 Чтение из стека

Следует обратить внимание на то, что хотя при считывании числа из вершины стека используется термин "выталкивание", само число из ячейки стека никуда не девается. Просто коррекция регистра-указателя стека делает содержимое этой ячейки не доступным с помощью механизма работы со стеком. При записи в стек очередного числа, как показано на рис.9 в, оно будет записано по адресу числа, вытолкнутого (считанного) из стека непосредственно перед этим.

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

Приведенные выше методы адресации операндов являются типичными для больш'ипства ЭВМ различных типов, хотя используемый для их реализации Формаг команд можст существенно различаться, при этом в каждом конкретном типе ЭВМ они могут доподняться и другими более изощренными методами адресации, увеличивающими гибкость организации различных структур даННЫХ при программировании.

Используется при обращении к поДпрограмме н возврате 6' исхоДную. Т. е. реаЛИЗУ'!Т механизм вложенных поДпрограмм.

2

2

2

2

Показать полностью… https://vk.com/doc-29732849_98960161
2 Мб, 29 мая 2012 в 22:16 - Россия, Москва, МГВМИ, 2012 г., pdf
Рекомендуемые документы в приложении