Обработка информации в ЭВМ осуществляется автоматически путем программного управления. Программа представляет собой алгоритм обработки информации, записанный в виде последовательности команд, которые должны быть выполнены для получения решения задачи.
Команда представляет собой код, определяющий операцию вычислительной машины и данные, участвующие в операции.
Команды микропроцессора, в отличие от микрокоманд, разрабатываются независимо от аппаратуры микросхемы, поэтому их разрядность обычно совпадает с разрядностью микропроцессора. Команда микропроцессора состоит из инструкции и обозначается «код операции» (КОП) (или INS в англоязычной литературе). Команда микропроцессора может состоять только из кода операции, когда не требуется указывать адрес операнда (операнды — это данные, над которыми команда производит какое-либо действие), или может состоять из кода операции и адресов операндов или данных. Форматы команд очень сильно зависят от структуры процессора.
Команда содержит также в явной или неявной форме информацию об адресе, по которому помещается результат операции, и об адресе следующей команды.
Многофайловый проект | Изучение С++ для начинающих. Урок #139
По характеру выполняемых операций различают следующие основные группы команд:
- а) команды арифметических операций над числами с фиксированной и плавающей точками;
- б) команды десятичной арифметики;
- в) команды логических операций и сдвигов;
- г) команды передачи кодов;
- д) команды операций ввода/вывода;
- е) команды передачи управления;
- ж) команды векторной обработки;
- з) команды задания режима работы машины и др.
Команда в общем случае состоит из операционной и адресной частей (рис. 4.12, а).
В свою очередь, эти части, что особенно характерно для адресной части, могут состоять из нескольких полей.
Операционная часть содержит код операции (КОП), который задает вид операции (сложение, умножение и др.). Адресная часть содержит информацию об адресах операндов и результате операции.
Структура команды определяется составом, назначением и расположением полей в команде.
Форматом команды называют ее структуру с разметкой номеров разрядов (битов), определяющих границы отдельных полей команды, или с указанием числа битов в определенных полях.
Важной и сложной проблемой при проектировании вычислительных машин является выбор структуры и форматов команды, т.е. ее длины, назначения и размерности отдельных ее полей. Естественно стремление разместить в команде в возможно более полной форме информацию о предписываемой командой операции. Однако в условиях, когда в современных ЭВМ значительно возросло число выполняемых различных операций и соответственно команд (в системе команд х86 более 500 команд) и значительно увеличилась емкость адресуемой основной памяти (4, 6 Гбайт), это приводит к недопустимо большой длине формата команды.
Действительно, число двоичных разрядов, отводимых под код операции, должно быть таким, чтобы можно было представить все выполняемые машинные операции. Если ЭВМ выполняет Мразличных операций, то число разрядов в коде операции
Hello World на Ассемблере (x86)

Например, при М= 500 якоп = 9.
Если основная память содержит S адресуемых ячеек (байтов), то для явного представления только одного адреса необходимо в команде иметь адресное поле для одного операнда с числом разрядов

Например, при 5=4 Гбайт пА = 32.
Отмечавшиеся ранее характерные для процесса развития ЭВМ расширение системы (наборы) команд и увеличение емкости основной памяти, а особенно создание микроЭВМ с коротким словом, потребовали разработки методов сокращения длины команды. При решении этой проблемы существенно видоизменилась структура команды, получили развитие различные способы адресации информации.
Проследим изменения классических структур команд.
Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна, как это показано на рис. 4.12, б, содержать следующую информацию:
- • Aj, A2 — адреса операндов;
- • A3 — адрес результата;
- • А4 —адрес следующей команды (принудительная адресация команд). Такая структура приводит к большой длине команды (например,
при М= 500, S = 4 Гб длина команды — 137 бит) и неприемлема для прямой адресации операндов основной памяти. В компьютерах с RISC-архитектурой четырехадресные команды используются для адресации операндов, хранящихся в регистровой памяти процессора.
Можно установить, что после выполнения данной команды, расположенной по адресу К (и занимающей L ячеек), выполняется команда из (К + Т)-й ячейки. Такой порядок выборки команды называется естественным. Он нарушается только специальными командами передачи управления. В таком случае отпадает необходимость указывать в команде в явном виде адрес следующей команды.

Рис. 4.12. Структуры команд: а — обобщенная; б — четырехадресная; в — трехадресная; г — двухадресная; д — одноадресная; е — безадресная
В одноадресной команде (рис. 4.12, д) подразумеваемые адреса имеют уже и результат операции, и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумулятором. Результат операции записывается в тот же регистр.
Наконец, в некоторых случаях возможно использование безадресных команд (рис. 4.12, е), когда подразумеваются адреса обоих операндов и результата операции, например при работе со стековой памятью.
В трехадресной команде (рис. 4.12, в) первый и второй адреса указывают ячейки памяти, в которых расположены операнды, а третий определяет ячейку, в которую помещается результат операции. Можно условиться, что результат операции всегда помещается на место одного из операндов, например первого. Получим двухадресную команду (рис. 4.12, г), т.е. для результата используется подразумеваемый адрес.
Следует различать понятия «адресный код в команде Ак» и «исполнительный (физический адрес) адрес Аи».
Адресный код — это информация об адресе операнда, содержащаяся в команде.
Исполнительный адрес — это номер ячейки памяти, к которой производится фактическое обращение.
Таким образом, способ адресации можно определить как способ формирования исполнительного адреса операнда Аи по адресному коду команды Ак.
В системах команд современных ЭВМ часто предусматривается возможность использования нескольких способов адресации операндов для одной и той же операции. Для указания способа адресации в некоторых системах команд выделяется специальное поле в команде — поле «метод» (указатель адресации, УА), рис. 4.13, а.
В этом случае любая операция может выполняться с любым способом адресации, что значительно упрощает программирование.

Рис. 4.13. Общая структура команды: а — с указателем метода адресации; б — без указателя метода адресации
Классификация способов адресации по наличию адресной информации в команде:
- • явная адресация;
- • неявная адресация.
При явной адресации операнда в команде есть поле адреса этого операнда, в котором задается адресный код Ак. Большинство методов адресации являются явными.
При неявной адресации адресное поле в команде отсутствует, адрес операнда подразумевается кодом операции.
Классификация способов адресации по кратности обращения в память. Широко используются следующие методы адресации операнда с различной кратностью обращения (г) в память:
- 1) непосредственная (/*= 0);
- 2) прямая (r= 1);
- 3) косвенная (г> 2).
Непосредственная адресация операнда. Обращение к регистровой памяти (РП) или ОП не производится (R = 0). Таким образом уменьшается время выполнения операции, сокращается объем памяти.
Прямая адресация операндов. При этом способе (рис. 4.13) адресации обращение за операндом в РП или ОП производится по адресному коду в поле команды, т.е. исполнительный адрес операнда совпадает с адресным кодом команды (Аисп = Ак). Обеспечивая простоту программирования, этот метод имеет существенные недостатки, так как для адресации к ячейкам памяти большой емкости требуется «длинное» адресное поле в команде.

Рис. 4.14. Схема прямой адресации: а — к регистровой памяти; б —к основной памяти
Косвенная адресация операндов. Адресный код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а лишь адрес операнда, называемый указателем операнда. Адресация к операнду через цепочку указателей (косвенных адресов) называется косвенной.
Адрес указателя остается неизменным, а косвенный адрес может изменяться в процессе выполнения программы. Это обеспечивает переадресацию данных, т.е. упрощает обработку массивов и списковых структур данных, упрощает передачу параметров подпрограммам, но не обеспечивает перемещаемость программ в памяти (рис. 4.15, а).

Рис. 4.15. Схема косвенной адресации: а — указатель операнда и операнд расположены в одном адресном пространстве оперативной памяти; б — указатель операнда расположен в регистровой памяти, а операнд — в адресном пространстве оперативной
Источник: studref.com
Понятие о машинном языке. Команда для эвм и ее структура.система команд.
МАШИННЫЙ ЯЗЫК, язык программирования для представления программ в форме, допускающей их непосредственную реализацию аппаратными средствами конкретной ЭВМ. Программа на машинном языке представляет собой последовательность машинных команд, поэтому иногда машинным языком называют систему команд ЭВМ.
Перевод исходной программы, подлежащей выполнению на ЭВМ, осуществляется автоматически самой ЭВМ с помощью ассемблера. Команда (инструкция) – элемент программы, приводящий к выполнению определенных действий.Команда представляет собой код, содержащий информацию, необходимую для управления машинной операцией. Под операцией понимают преобразование информации, выполняемое машиной под воздействием одной команды. Содержанием машинной операции может быть запоминание, передача, арифметическое и логическое преобразование некоторых машинных слов (операндов). Систе́ма кома́нд (также набо́р команд) — соглашение о предоставляемых архитектурой средствах программирования, а именно: определённых типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способов обработки прерываний и исключений, методов ввода и вывода.
74, автоматизация прграммирования.стандартные программы и алгоритми ческие языки.
Автоматиза́ция проце́сса программи́рования — отстранение человека от процесса написания программного кода, как полностью, так и частично. Достигается путём:—разработки инструментария для формулировки и постановки задачи от человека машине (человеко-машинный язык),—представлением средств данного инструмента в терминах области специализации человека-оператора,—разработки анализатора входных данных (полученных средствами инструментария описанного выше) и генерации конечного кода на языке машинного уровня,—интеграции систем учёта и коррекции допущенных ошибок (системы ИИ).
Алгоритми́ческий язык — формальный язык, используемый для записи, реализации или изучения алгоритмов. Всякий язык программирования является алгоритмическим языком, но не всякий алгоритмический язык пригоден для использования в качестве языка программирования [ процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
75, танляторы, их виды и принципы работы Транслятор — это программа, обеспечивающая перевод исходной программы пользователя на внутренний язык компьютера. Он работает под управлением ОС, которая и обеспечивает связь его с устройствами и блоками электронно-вычислительных машин.На практике используются трансляторы с разными принципами работы.
Первый вид трансляторов обеспечивает поочередный перевод каждого оператора исходной программы на машинный язык и немедленное выполнение его (с одновременной проверкой правильности его записи). Такого типа трансляторы называют интерпретаторами.Второй вид транслятора — компилятор. В отличие от интерпретатора он сначала осуществляет перевод всей исходной программы на машинный язык, одновременно проверяя ее правильность; в полученную программу компилятор включает подпрограммы встроенных функций (типа sin x, ln x и т. д.), прочие подпрограммы, которые увязываются со всей программой, — результатом является загрузочная (исполняемая) программа,Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.
76, эволюция и классификация языков программирования. Классификация ЯП
1. По степени ориентации на специфические возможности ЭВМ ЯП делятся на:
· машинно-зависимые; · машинно-независимые. К машинно-зависимым ЯП относятся машинные языки, ассемблеры и автокоды, которые используются в системном программировании. Программа на машинно-зависимом ЯП может выполняться только на ЭВМ данного типа. Программа на машинно-независимом ЯП после трансляции на машинный язык становится машинно-зависимой.
Этот признак ЯП определяет мобильность получаемых программ (возможность переноса на ЭВМ другого типа). 2. По степени детализации алгоритма получения результата ЯП делятся на: · языки низкого уровня; · языки высокого уровня; · языки сверхвысокого уровня.
3. По возможности управления реальными объектами и процессами: · языки систем реального времени; · языки систем условного времени. 4. По способу получения результата · процедурные; · непроцедурные. 5. По типу решаемых задач · языки системного программирования · языки прикладного программирования.
8. Непроцедурные языки по типу встроенной процедуры поиска решений делятся на: · реляционные;· функциональные; · логические.Эволюция языков программирования. Устройство современных ЭВМ основано на принципах двоичной арифметики, где для представления чисел используются всего две цифры — 0 и 1. В двоичной арифметике любое число кодируется битовыми последовательностями.
Вся необходимая для работы ЭВМ информация также хранится в памяти ЭВМ в битовом представлении. Особенности устройства ЭВМ определяют способы её управления. Командами для управления ЭВМ служат всё те же битовые последовательности. Поэтому наиболее естественным способом управления ЭВМ является кодирование информации для ЭВМ в виде всё тех же битовых последовательностей.
Для первых ЭВМ альтернативных способов управления просто не существовало. Алфавит языка непосредственного кодирования содержал всего две буквы.Можно представить правила словообразования и внешний вид словаря этого языка. Программирование в кодах ЭВМ требует досконального знания системы команд машины и большого внимания.
Кроме того, процесс программирования в кодах малоэффективен. Проблема повышения эффективности программирования возникла одновременно с появлением первых действующих вычислительных машин.
Первая попытка оптимизации программирования в двоичных кодах заключалась в разработке специальной системы кодирования двоичных машинных команд многобуквенными мнемоническими сокращениями. Программирование в мнемонических командах удобнее для программиста, поскольку мнемонические коды содержат для программиста дополнительную информацию по сравнению с трудно различимыми последовательностями нулей и единиц.
Вместе с тем текст подобной программы становится абсолютно непонятным вычислительной машине и требует специальной программы-переводчика (или транслятора), которая бы заменяла мнемонический код исходной двоичной командой. С момента реализации этой идеи кодирование становится программированием.Языки, которые требуют предварительного перевода, называются языками высокого уровня.
Считается, что эти языки в определённом смысле более близки к естественному языку. С последним утверждением можно не согласится, но одно очевидно: многолетний опыт показал, что использование языков высокого уровня значительно повышает эффективность программирования по сравнению с обычным кодированием.
Следующим шагом в развитии языков программирования явилась реализация возможности построения большой программы из отдельных фрагментов программного кода. С этой целью используются подпрограммы. Это последовательности команд, предназначенные для многократного использования в одной программе. Программирование с использованием подпрограмм требует ещё одной специальной программы, которая обеспечивает сборку единой программы из отдельных фрагментов-подпрограмм и её размещение в памяти ЭВМ. Эта программа называется компоновщиком.
77. основне понятия языка программирования.типы данных. Алфавит — это фиксированный для данного языка набор основных символов, т.е. «букв алфавита», из которых должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются. Синтаксис — это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза.
Точнее говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке. определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.Операторы (команды).
Оператор — это наиболее крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка и определяет некоторый вполне законченный этап обработки данных. В состав опеpатоpов входят: ключевые слова;данные;выpажения и т.д.Данные — величины, обpабатываемые пpогpаммой. Имеется тpи основных вида данных: константы, пеpеменные и массивы.
Константы — это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.Пеpеменные обозначаются именами и могут изменять свои значения в ходе выполнения пpогpаммы. Пеpеменные бывают целые, вещественные, логические, символьные и литерные.Массивы — последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами (одним, в случае одномерного массива, или несколькими, если массив многомерный). Иногда массивы называют таблицами.
78. классификация технологий программирования. Технология программирования — дисциплина, изучающая технологические процессы программирования и порядок их прохождения. Аспектно-ориентированное сборочное программирование — разновидность сборочного программирования, основанная на сборке полнофункциональных приложений из многоаспектных компонентов, инкапсулирующих различные варианты реализации. Восходящее программирование — методика разработки программ, при которой крупные блоки собираются из ранее созданных мелких блоков. Восходящее программирование начинается с разработки ключевых процедур и подпрограмм, которые затем постоянно модифицируются.
79.объектно-ориентированное прог-е и его основные понятия. Объе́ктно-ориенти́рованное, или объектное, программи́рование (в дальнейшем ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы.
Основные понятия.Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких характеристик. Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
Наследование — это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским или суперклассом. Новый класс — потомком, наследником или производным классом.
80.поколения языка бэйсик.алгоритмический язык в.б. его структура. Язык Visual Basic — предложенный корпорацией Microsoft объектно-ориентированный язык программирования в среде ОС Windows обеспечивающий: — коллективную разработку программного обеспечения; и
— поддержку технологии связи и компоновки объектов. Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Структура является обобщением определяемых пользователем типов (UDT), поддерживаемых предыдущими версиями Visual Basic.
В дополнение к полям, структуры могут предоставлять свойства, методы и события. Структура может реализовать один или несколько интерфейсов, можно объявлять индивидуальные уровни доступа к каждому полю. Чтобы создать структуру, можно комбинировать элементы данных различных типов. Структуры связывают один или несколько элементов друг с другом и с самой структурой.
Объявленная структура получает составной тип данных и можно объявлять переменные этого типа. Структуры используются для хранения в одной переменной нескольких связанных частей данных. Например, может потребоваться сохранить вместе имя, телефон и сведения о зарплате сотрудника.
Для этих данных можно использовать несколько переменных, а можно определить структуру и использовать ее для одной переменной сотрудника. Преимущества структуры становятся яснее при большом количестве сотрудников и, следовательно, большом количестве экземпляров переменной. После того, как с помощью форм и элементов управления создан интерфейс приложения, необходимо написать код, определяющий его поведение. Как и любой другой современный язык программирования, Visual Basic поддерживает ряд общих конструкций программирования и языковых элементов.
81. в.б.интерфейс пакета. Пакеты Power Pack — это бесплатные надстройки, элементы управления, компоненты и инструменты для Visual Basic, с которыми разработка высококачественных приложений становится еще проще и удобнее. Пакет Power Pack 3.0 для Visual Basic включает в себя элемент управления DataRepeater, элементы управления Line and Shape, компонент PrintForm и библиотеку Printer Compatibility Library и позволяет загрузить все эти компоненты единовременно.
В роли основных объектов при визуальном программировании выступают формы (Forms). Форма представляет собой окно, на котором размещаются управляющие элементы. Управляющие элементы — это командные кнопки (CommandButton), переключатели, или «флажки» (Checkbox), поля выбора, или «радиокнопки» (OptionsButton), списки (ListBox), текстовые поля (TextBox) и др Событийная процедура. Важное место в технологии визуального объектно-ориентированного программирования занимают события. В качестве события могут выступать щелчок кнопкой мыши на объекте, нажатие определенной клавиши, открытие документа и т. д. В качестве реакции на события запускается определенная процедура, которая способна изменять свойства объекта, вызывать его методы и т. д.
Вычислительные системы
Вычислительная система (ВС) — это взаимосвязанная совокупность аппаратных средств вычислительной техники и программного обеспечения, предназначенная для обработки информации. В зависимости от ряда признаков различают следующие вычислительные системы (ВС):
однопрограммные и многопрограммные (в зависимости от количества программ, одновременно находящихся в оперативной памяти);
индивидуального и коллективного пользования (в зависимости от числа пользователей, которые одновременно могут использовать ресурсы ВС);
с пакетной обработкой и разделением времени (в зависимости от организации и обработки заданий);
однопроцессорные, многопроцессорные и многомашинные (в зависимости от числа процессоров);
сосредоточенные, распределенные (вычислительные сети) и ВС с теледоступом (в зависимости от территориального расположения и взаимодействия технических средств);
работающие или не работающие в режиме реального времени (в зависимости от соотношения скоростей поступления задач в ВС и их решения);
универсальные, специализированные и проблемно-ориентированные (в зависимости от назначения).
Источник: poisk-ru.ru
Структура и форматы команд ЭВМ
Обработка информации в ЭВМ осуществляется путём программного управления.
Программа представляет собой алгоритм обработки информации, записанной в виде последовательности команд, которые должны быть выполнены машиной для получения результата.
Команда ЭВМ представляет собой код, определяющий операцию вычислительной машины и данные, участвующие в операции. В явной и неявной форме команда содержит также информацию об адресе, по которому помещается результат операции, и об адресе следующей команды.
По характеру выполняемых операций можно выделить следующие группы команд:
¨ команды арифметических операций для чисел с фиксированной или плавающей запятой;
¨ команды десятичной арифметики;
¨ команды передачи данных (MOV AX, 0FFFh);
¨ команды операций ввода/вывода (IN, OUT);
¨ команды логических операций (AND, OR, NOT);
¨ команды передачи управления (управление циклом – LOOP, условные переходы – JAE, JB);
¨ команды задания режима работы машины и др.
Форматы команд ЭВМ
В команде, как правило, содержатся не сами операнды, а информация объект адресах ячеек памяти или регистрах, в которых они находятся. Код команды можно представить состоящим из нескольких полей, каждое из которых имеет свое функциональное назначение.
В общем случае команда состоит из:
¨ операционной части (содержит код операции);
¨ адресной части (содержит адресную информацию о местонахождении обрабатываемых данных и месте хранения результатов).
В свою очередь, эти части, что особенно характерно для адресной части, могут состоять из нескольких полей.
Структура команды определяется составом, назначением и расположением полей в коде.
Форматом команды называется заранее оговоренная структура полей ее кода с разметкой номеров разрядов (бит), определяющих границы отдельных полей команды, или с указанием числа разрядов (бит) в определенных полях, позволяющая ЭВМ распознавать составные части кода.
Пример формата команды процессора i486.
mod r/m — спецификатор режима адресации;
r/m — регистр памяти;
SS — масштабный множитель для режима масштабирования индексной адресации;
КОП — код операции;
index — определяет индексный регистр;
base — определяет базовый регистр.
Важной и сложной проблемой при проектировании ЭВМ является выбор структуры и форматов команды, т.е. ее длины, назначения и размерности отдельных ее полей. Естественно стремление разместить в команде в возможно более полной форме информацию о предписываемой командой операции. Однако в условиях, когда в ЭВМ значительно возросло число выполняемых различных операций и соответственно команд (в компьютерах с CISC-архитектурой более 200 команд) и значительно увеличилась емкость адресуемой основной памяти, это приводит к недопустимо большой длине формата команды.
Вместе с тем, для упрощения аппаратуры и повышения быстродействия ЭВМ длина формата команды должна быть по возможности короче, укладываться в машинное слово или полуслово. Решение проблемы выбора формата команды значительно усложняется в микропроцессорах, работающих с коротким словом.
Проследим изменения классических структур команд.
Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна, как это показано на рис. 3.1 (б), содержать следующую информацию: А1, А2 — адреса операндов, А3 — адрес результата, А4 — адрес следующей команды (принудительная адресация команд).
Рис. 3.1. Структуры команд: а) обобщенная, б) четырехадресная, в) трехадресная, г) двухадресная, д) одноадресная, е)безадресная
Такая структура приводит к большей длине команды и неприемлема для прямой адресации операндов основной памяти. В компьютерах с RISC-архитектурой четырехадресные команды используются для адресации операндов, хранящихся в регистровой памяти процессора.
Можно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной по адресу К (и занимающей L ячеек), выполняется команда из (K+L)-ой ячейки. Такой порядок выборки команды называется естественным. Он нарушается только специальными командами (передачи управления). В таком случае отпадает необходимость указывать в команде в явном виде адрес следующей команды.
В трехадресной команде (рис. 3.1, в) первый и второй адреса указывают ячейки памяти, в которых расположены операнды, а третий определяет ячейку, в которую помещается результат операции.
Можно условиться, что результат операции всегда помещается на место одного из операндов, например первого. Получим двухадресную команду (рис. 3.1, г), т.е. для результата используется подразумеваемый адрес.
В одноадресной команде (рис. 3.1, д) подразумеваемые адреса имеют уже и результат операции и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумулятором. Результат операции записывается в тот же регистр.
Наконец, в некоторых случаях возможно использование безадресных команд (рис. 3.1, е), когда подразумеваются адреса обоих операндов и результата операции, например, при работе со стековой памятью.
С точки зрения программиста, наиболее естественны и удобны трехадресные команды. Обычно в ЭВМ используется несколько структур и форматов команд разной длины. Приведенные на рис. 3.1. структуры команд достаточно схематичны. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в командах способами адресации.
Способы адресации
Существует два различных принципа поиска операндов в памяти: ассоциативный и адресный.
Ассоциативный поиск операнда (поиск по содержанию ячейки) предполагает просмотр содержимого всех ячеек памяти для выявления кодов, содержащих заданный командой ассоциативный признак. Эти коды и выбираются из памяти в качестве искомых операндов.
Адресный поиск предполагает, что искомый операнд извлекается из ячейки, номер которой формируется на основе информации в адресном поле команды. Ниже мы будем рассматривать только реализацию адресного принципа поиска операнда.
Следует различать понятия исполнительного адреса и адресного кода.
Адресный код – это информация об адресе операнда, содержащегося в команде.
Исполнительный адрес – это номер ячейки памяти, к которой фактически производится обращение.
Адресный код, как правило, не совпадает с исполнительным адресом. Таким образом, способ адресации можно определить как способ формирования исполнительного адреса операнда Аи по адресному коду команды Ак.
В системах команд ЭВМ часто предусматривается возможность использования нескольких способов адресации операндов для одной и той же операции. Для указания способа адресации в некоторых системах команд выделяется специальное поле в команде — «метод» (указатель адресации). В этом случае любая операция может выполняться с любым способом адресации, что значительно упрощает программирование.
Адресуемые в командах операнды хранятся в основной памяти (ОП) и регистровой памяти (РП), рисунок 3.2.
Рассмотрим способы адресации.
Источник: megaobuchalka.ru