Операнд

Добавлено в закладки: 0

Что такое операнд? Описание и определение понятия.

Операнд – это понятие, которое используется чаще всего в математике, поскольку операнд является объектом математической операции, величина, на базе которой выполняется какая-либо операция. Благодаря ней выполняются функции задаваемые директивами.

Машинные команды могут иметь или вовсе не иметь операндов, или же иметь их в числе одного или двух.

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

В двухоперандной машинной команде допускаются и следующие сочетания разных операндов:

  • регистр — регистр;
  • регистр — память;
  • память — регистр;
  • непосредственный операнд — регистр;
  • непосредственный операнд — память.

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

Рассмотрим более детально, что значит операнд.

Порядок проведения операций. Классификация операндов

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

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

По своей природе, операнды делятся на определенные классификации:

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

Отличия операнда и оператора

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

Было бы целесообразно рассмотреть ниже перечисленную систематизацию операндов:

  • стабильные либо конкретные операнды;
  • целенаправленные операнды;
  • переменные типы операндов;
  • расходомер адреса;
  • регистровый операнд;
  • основной и индексный операнды;
  • скелетные операнды;
  • операнды – записи.

Неизменные или же конкретные операнды — это количество, строчка, имя или же выражение, которое содержит неĸоторый зафиксированный смысл. Имя в собственную очередь не надлежит быть перемещаемым, то есть находиться в зависимости от конкретного адреса загрузки программки в память. К примеру, оно обязано быть определено самим оператором.

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

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

Счетчик адреса — это особый вид по своему характеру операнда. Он классифицируется символом $. Специфичность такового операнда заключается ключевым образом в том, что в момент, когда транслятор ассемблера встречает в источнике программки этот знак, то он замещает его текущее на этот момент содержание счетчика адреса, который ещё везде популярен под названием – счетчик размещения. Подобный инструмент представляет из себя смещение текущей машинной команды касательно начала раздела кода. Стоит упомянуть, что всякий раз в формате листинга счетчику адреса всецело соответствует 2-ая или же 3-я колонка. Это будет в первую очередь зависеть от нахождения в зависимости от того, есть ли в наличие или же нет, в самом листинге колонка с включенным в нее уровнем вложенности. В случае, к примеру, если оставить для рассмотрения образчик какого-либо листинга, то становится бесспорным то, что прецедент при обработке транслятором еще одной поступившей команды, ассемблера счетчик адреса возрастает в собственном числе на длину сформированной самой машинной команды. Директивы в свою очередь, в отличии от команд ассемблера, — это указания транслятору на выполнение конкретных свершений по процессу формирования машинного представления конкретной программки, и для них транслятором не предоставляется, безусловно, практически никаких систем в памяти.

Виды операндов, методы адресации и прямая адресация

Регистровый операнд — это всего лишь имя регистра. В программке на ассемблере, возможно, нередко повстречать внедрение имен всех регистров совместного диапазона и большинства обликов системных регистров.

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

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

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

Перечислим и далее рассмотрим характерные черты ключевых разновидностей адресации операндов в памяти:

  • непосредственную адресацию;
  • непрямую базисную (регистровую) адресацию;
  • непрямую базисную (регистровую) адресацию со смещением;
  • непрямую индексную адресацию со смещением;
  • непрямую базисную индексную адресацию;
  • непрямую базисную индексную адресацию со смещением.

Это элементарный тип адресации операнда в памяти (равно как результативный способ местоположения) с целью его развития, и при этом он никак не применяет практически никаких добавочных ключей либо регистров. Результативный способ местоположения принимается непосредственно со степенью смещения механических указаний, что делает возможным обладать объемом в 8, 16, 32 биг-бит. Прямая адресация может быть 2-ух видов.

 Относительная и абсолютная адресация

Относительная непосредственная адресация используется с целью распоряжений относительных переходов, с целью следования инструкций условного адреса – перехода. Условность подобного перехода состоит в том, что в области смещения механических указаний находится 8-, 16–либо 32 битное положение, что в следствии работы охватывает регистер указателя распоряжений ip/eip. В следствии подобного строения выявляется местоположение, согласно какому и приводится в действие трансформация.

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

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

Косвенная базисная индексная адресация

Косвенная базисная (регистровая) адресация. При такого рода адресации результативное местоположение операнда вполне может пребывать в каждом из его регистров всеобщего назначения, помимо sp/esp и bp/ebp (данные особые регистры с целью работы осуществляют слияние). В данный порядок адресации регистр берется в квадратные скобки []. Группа mov, [есх] размещает в указатель содержание фразы согласно адресу сектора информации со смещением, хранящимся в регистре [есх]. Таким образом содержание регистра можно легко и просто поменять в процессе деятельности проекта. Этот метод адресации дает возможность легко и быстро вынести изменения в местоположение операнда с целью определенных механических указаний. Данное качество весьма может быть полезно, к примеру, с целью учреждения повторяющихся вычислений, а также и с целью работы с разными текстурами информации в виде таблиц либо массивов.

Теперь рассмотрим косвенную базисную (регистровую) адресацию со смещением. Этот тип адресации представляется добавлением предшествующего и рассчитанный с целью допуска к сведениям со смещением, касательно определенного базисного адреса. Данный тип адресации комфортно может использоваться с целью допуска к составляющим строений информации. Если сдвиг компонентов общеизвестен, предварительно в периоде исследования проекта основное (первоначальное) местоположение текстуры обязано рассчитываться динамично. Разновидность охватываемого базисного регистра дает возможность направиться к одинаковым составляющим разных экземпляров монотипных строений информации. Косвенная индексная адресация со смещением – этот тип адресации весьма схож с непрямой базисной адресацией со смещением. Тут, кроме прочего, с целью развития успешного адреса применяется единственный регистр со всех регистров всеобщего назначения. Однако индексная адресация имеет одну увлекательную характерную черту, что весьма удобно с целью деятельности и в работе с массивами. Ее суть сопряжена с перспективой развития, именуемого масштабированием, и охватывающего индексные регистры. Наличие способности масштабирования значительно может помочь в устранении многих трудностей в ходе выполнения различных видов работ, что делает любую работу наиболее качественной и продуктивной.

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

Мы коротко рассмотрели что такое операнд, классификации операндов, их виды и порядок выполнения операций с их использованием. Оставляйте свои комментарии или дополнения к материалу.



Нет комментариев и отзывов для “Операнд”

К сожалению, еще никто не комментировал данную статью, Ваш отзыв будет первым!

Ваш отзыв очень важен для нас.





Нажимая на кнопку "Опубликовать", вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности.

Авторизация
*
*
Войти с помощью: 

один × три =

Регистрация
*
*
*
Войти с помощью: 
Генерация пароля

2 × 5 =

Adblock detector