Что такое операнды в информатике

Операнд

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

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

Что такое операнды в информатике. Смотреть фото Что такое операнды в информатике. Смотреть картинку Что такое операнды в информатике. Картинка про Что такое операнды в информатике. Фото Что такое операнды в информатике

Полезное

Смотреть что такое «Операнд» в других словарях:

Операнд — константа, переменная, функция, выражение и другой объект языка программирования, над которым производятся операции. См. также: Выражения Финансовый словарь Финам … Финансовый словарь

ОПЕРАНД — [англ. operand] инф. в ЭВМ: элемент данных, над которым выполняется операция. Словарь иностранных слов. Комлев Н.Г., 2006. операнд (англ. operand) величина, над которой совершается операция при реализации программы в цифровой вычислительной… … Словарь иностранных слов русского языка

Операнд — элемент данных, над которым производятся машинные операции. Словарь бизнес терминов. Академик.ру. 2001 … Словарь бизнес-терминов

ОПЕРАНД — величина, представляющая собой объект операции, реализуемой ЭВМ в ходе выполнения программы вычислений. Напр., операндами арифметических операций обычно являются числа: при сложении слагаемые, при умножении сомножители … Большой Энциклопедический словарь

операнд — компонента операции Словарь русских синонимов … Словарь синонимов

операнд — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN operand … Справочник технического переводчика

ОПЕРАНД — элемент данных, над которым выполняется операция (см. (2)) при реализации программы в ЭВМ. В качестве О. могут выступать различные единицы: число, символ и т.д. Напр. в выражении у = а + b О. являются величины а, b. Для того чтобы команду или О.… … Большая политехническая энциклопедия

операнд — величина, представляющая собой объект операции, реализуемой ЭВМ в ходе выполнения программы вычислений. Например, операндами арифметических операций обычно являются числа: при сложении слагаемые, при умножении сомножители. * * * ОПЕРАНД ОПЕРАНД … Энциклопедический словарь

операнд — operandas statusas T sritis automatika atitikmenys: angl. operand vok. Operand, m; Rechengröße, f rus. операнд, m pranc. opérande, m … Automatikos terminų žodynas

операнд — м. Величина, над которой совершаются операции при реализации программы в ЭВМ. Толковый словарь Ефремовой. Т. Ф. Ефремова. 2000 … Современный толковый словарь русского языка Ефремовой

Источник

Чем операнд отличается от оператора

В мире программирования есть довольно много разных направлений, которые очень сильно отличаются друг от друга. Например, программист микроконтроллеров не сможет разработать конфигурацию 1С, а программист 1С может не иметь понятия о принципах обмена данными через интерфейс RS-232. И при этом оба они могут быть очень классными специалистами в своей области.

Знаете ли вы, чем отличается операнд от оператора? Я вот когда-то не знал и постоянно путался с этими терминами. Для меня, как говорится, был “хрен редьки не слаще”. Но однажды каждый программист при переходе от любителя к профессионалу должен взять себя в руки и разобраться с этими базовыми понятиями. А я постараюсь в этом помочь.

ПРИМЕЧАНИЕ: В видео я кратко рассказал о сдвиге. Если хотите подробнее, то можете посмотреть здесь: сдвиг влево, сдвиг вправо.

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

Ну, во первых, в отличие от строго типизированных языков, таких как Паскаль, в Python при составлении выражений типы операндов не обязательно должны совпадать.

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

А вот обещанное отличие операнда от оператора:

Что такое операнды в информатике. Смотреть фото Что такое операнды в информатике. Смотреть картинку Что такое операнды в информатике. Картинка про Что такое операнды в информатике. Фото Что такое операнды в информатике

Операторы

В Python используются следующие операторы:

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

Например, оператор + складывает два числа. Но он также может быть унарным оператором, и оператором конкатенации (сложения) строк.

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

xИнверсия х=
==
!=Операторы сравнения. Соответственно “меньше”, “больше”, “меньше или равно”, “больше или равно”, “равно”, “не равно”.

Есть ещё такая штука, как приоритет операторов. Например, в выражении

Например, если вы не знаете, как в Python будет вычислено это выражение:

Есть в Python и другие операторы. А также знаки, похожие на операторы, но не являющиеся таковыми. Но о них мы поговорим в следующих статьях.

Источник

Содержание

Пример

Следующее арифметическое выражение показывает пример операторов и операндов:

Таким образом, операнд также называется «одним из входов (количеств) для операции».

Обозначение

Выражения как операнды

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

Порядок действий

Правила приоритета влияют на то, какие значения образуют операнды для каких операторов:

В приведенном выше выражении оператор умножения имеет более высокий приоритет, чем оператор сложения, поэтому оператор умножения имеет операнды «5» и «2». Оператор сложения имеет операнды «3» и «5 × 2».

Размещение операндов

Infix и порядок работы

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

Следующим шагом будет вычисление значения выражения внутри скобок, то есть (2 + 4) = 6. Теперь наше выражение выглядит так:

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

Arity

Информатика

В языках компьютерного программирования определения оператора и операнда почти такие же, как в математике.

Источник

Лекция 2: Переменные, выражения и инструкции (Variables, expressions and statements)

2.4. Операторы

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

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

Например, выполнение скрипта:

приводит к результату

Инструкция присваивания ничего не выводит на экран.

2.5. Операторы и операнды

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

Операция деления может привести к неожиданным результатам:

Значение переменной minute равно 59, операция деления 59 на 60 приведет к результату 0.98333, а не к нулю! Причиной подобного результата в Python является округление ( floor division ).

Подробнее об исторических предпосылках округления можно узнать в блоге автора Python :

Если оба операнда целочисленные, то результат тоже будет целочисленным. В нашем примере дробная часть отбрасывается, и в результате получаем нуль.

Если какой-либо из операндов является числом с плавающей точкой, то результат тоже будет типа float :

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

2.6. Выражения

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

Если выражения вводятся в интерактивном режиме, то интерпретатор вычисляет (evaluates) их и отображает результат:

2.7. Порядок операций

Если в выражении встречается больше, чем один оператор, то порядок вычислений зависит от правил старшинства (rules of precedence ). Для математических операций, Python следует математическим соглашениям. Аббревиатура PEMDAS является простым способом для запоминания правил:

Скобки (Parentheses) имеют наивысший приоритет и могут использоваться для принудительного определения порядка вычислений в выражении. Таким образом, результат выражения 2*(3-1) будет равен 4, (1+1)**(5-2) будет равен 8. Вы также можете использовать скобки для упрощения чтения выражений, например, (minute*100) / 60, если это не повлияет на результат.

Возведение в степень (Exponentiation) имеет наибольший приоритет, так 2**1+1 равно 3, а не 4, и 3*1**3 равно 3, а не 27.

Умножение и деление (Multiplication and Division) имеют одинаковый приоритет, который выше сложение и вычитания (Addition and Subtraction), которые также имеют одинаковый приоритет. Таким образом, 2*3-1 равно 5, а не 4, и 6+4/2 равно 8, а не 5.

Операторы с одинаковым приоритетом вычисляются слева направо. Таким образом, 5-3-1 равно 1, а не 3.

Если вы сомневаетесь, то поставьте скобки.

2.8. Модульные операторы

Модульные операторы работают с целочисленными значениями и возвращают остаток от деления (yields the remainder ) двух операндов. В Python модульный оператор представлен символом (%). Синтаксис у него следующий:

Модульный оператор может быть очень полезен, если вы хотите проверить делится ли x на y без остатка – если x % y равно 0.

Также, вы можете извлечь самую правую цифру или цифры из числа. Например, x % 10 вернет самую правую цифру числа x ( по основанию 10).

Источник

Что такое операнд в информатике. Операнды

Примечание: унарные операции всегда записываются перед операндом.

Конструкция из операций и операндов называется выражением.

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

А ещё при помощи операции + можно складывать фрагменты текста—символы и строки. Вот пример, иллюстрирующий это.

Теперь рассмотрим другой тип операций, такой, как операции сравнения.

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

if not (St = «выход») then
Sum:=Sum + St;
.
if not StopSumming then
I:=I + 1;

Чаще всего операция not применяется в случаях, аналогичных второму, когда имеется переменная типа Boolean и надо выполнить оператор/цикл, если её значение ложно.

Структура программы на ассемблере

Типы и структура предложений ассемблера

Понятие о метасинтаксических языках

Классификация лексем ассемблера

Описание простых операндов и операндов-выражений

Варианты расположения операндов команд ассемблера

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

Стандартные директивы сегментации

Упрощенные директивы сегментации

Простые типы данных ассемблера (диапазоны значений)

Директивы описания простых типов данных

Синтаксис ассемблера

Программа на ассемблере представляет собой совокупность блоков памяти, называемых сегментами. Программа может состоять из одного или нескольких таких блоков-сегментов. Сегменты программы имеют определенное назначение, соответствующее типу сегментов: кода, данных и стека. Названия типов сегментов отражают их назначение. Деление программы на сегменты отражает сегментную организацию памяти процессоров Intel (архитектура IA-32). Каждый сегмент состоит из совокупности отдельных строк, в терминах теории компиляции называемых предложениями языка. Для языка ассемблера предложения, составляющие программу, могут представлять собой синтаксические конструкции четырех типов.

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

Директивы являются указанием транслятору ассемблера на выполнение некоторых действий. У директив нет аналогов в машинном представлении.

Комментарии содержат любые символы, в том числе и буквы русского алфавита. Комментарии игнорируются транслятором.

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

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

Основные символы языка, в теории компиляции называемые терминальными, это имена операторов, регистров и т. п., то есть это те символьные объекты, из которых строится, в частности, исходный текст ассемблерной программы.

Имена конструкций языка, в теории называемые нетерминальными символами, обычно заключаются в угловые скобки <> или пишутся строчными буквами.

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

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

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

Для примера рассмотрим описание и использование форм Бэкуса-Наура для построения десятичных чисел со знаком. Вначале опишем эти формы (правила):

символ вертикальной черты (|) означает альтернативу при выборе варианта некоторого правила.

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

Вначале определим алфавит ассемблера, то есть допустимые для написания текста программ символы:

Лексемами языка ассемблера являются ключевые слова, идентификаторы, цепочки символов и целые числа.

названия регистров (AL, АН, BL, ВН, CL, СН, DL, ОН, АХ, ЕАХ, ВХ, ЕВХ, СХ, ЕСХ, DX, EDX, ВР, EBP, SP, ESP, DI, EDI, SI, ESI, CS, DS, ES, FS, GS, SS, CRO, CR2, CR3, DRO, DRl, DR2, DR3, DR6,DR7);

операторы (BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD, FWORD, QWORD, TBYTE, REAL4, REALS, REAL10, NEAR16, NEAR32, FAR16, FAR32, AND, NOT, HIGH, LOW, HIGHWORD, LOWWORD, OFFSET, SEG, LROFFSET, TYPE, THIS, PTR, WIDTH, MASK, SIZE, SIZEOF, LENGTH, LENGTHOF, ST, SHORT, TYPE, OPATTR, MOD, NEAR, FAR, OR, XOR, EQ, NE, LT, LE, GT, GE, SHR,

названия команд (КОП) ассемблера, префиксов.

=> А5СП_символ_буква | А5СП_символ_буква | А5СП_символ_буква

=> 0| 1 | 2 | 3 |4| 5 | 6| 7| 8| 9

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

= > a | b | c | d | e | f | A | B | C | D | E | F

Важно отметить наличие символов после (h) и перед (0) записью шестнадцатеричного числа. Это сделано для того, чтобы транслятор мог отличить в программе одинаковые по форме записи десятичные и шестнадцатеричные числа. К примеру, числа 1578 и 1578h выглядят одинаково, но имеют разные значения. С другой стороны, какое значение в тексте исходной программы может иметь лексема fe023?

Рассуждениями, приведенными ранее, был показан порядок формирования предложений программы ассемблера и составляющих их элементов (лексем). Также были рассмотрены правила формирования меток, названий команд (префиксов). Осталось обсудить комментарии и операнды. Что касается комментария, то это самый простой элемент предложения ассемблера. Любая комбинация символов ASCII, расположенная в строке за символом точки с запятой (;), транслятором игнорируется, то есть является комментарием. Описанию операндов, ввиду их важности, будет посвящен отдельный подраздел.

Итак, начнём с выражений.

Это выражение, которое записывает в переменную х число 100.

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

Var x: byte; c: char; begin x:= x + c; end.

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

Var x: byte; c: integer; begin x:= x + c; end.

Основные виды операторов: арифметические, операторы присваивания, сравнения, логические и поразрядные (побитовые).

Также разделяются операторы по количеству операндов:

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

Если вы думаете, что на этом с операторами всё, то вы заблуждаетесь. Мы ещё долго и нудно будем о них говорить, так как это тема большая и очень важная.

Оператор + выполняет операцию сложения
Оператор * выполняет операцию умножения

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

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

Для приведенных ранее правил сочетания типов операндов есть исключения, которые касаются:

§ команд работы с цепочками, которые могут перемещать данные из памяти в память;

§ команд работы со стеком, которые могут переносить данные из памяти в стек, также находящийся в памяти;

§ команд типа умножения, которые, кроме операнда, указанного в команде, неяв­но используют еще и второй операнд.

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

Рассмотрим классификацию операндов, поддерживаемых транслятором ассем­блера.

§ Операнд задается неявно на микропрограммном уровне. В этом случае команда явно не содержит операндов. Алгоритм выполнения команды использует не­которые объекты по умолчанию (регистры, флаги в EFLAGS и т. д.). Например, команды CLI и STI неявно работают с флагом прерывания IF в регистре EFLAGS, а команда XLAT неявно обращается к регистру AL и строке в памяти по адресу, определяемому парой регистров DS:BX.

o Операнд задается в самой команде (непосредственный операнд). Это может быть число, строка, имя или выражение, имеющее некоторое фиксированное (кон­стантное) значение. Физически непосредственный операнд находится в коде команды, то есть является ее частью. Для его хранения в команде выделяется поле длиной до 32 битов (см. главу 3). Непосредственный операнд может быть только вторым операндом (источником). Операнд-приемник может находить­ся либо в памяти, либо в регистре.

Например, команда mov ax,0ffffh пересылает в регистр АХ шестнадцатеричную константу 0ffffh. Команда add sum,2 складыва­ет содержимое поля по адресу sum с целым числом 2 и записывает результат по месту первого операнда, то есть в память. Если непосредственный операнд имя, то оно не должно быть перемещаемым, то есть зависеть от адреса за­грузки программы в память. Такое имя можно определить оператором EQU или =.

num equ 5 ; вместо num ассемблер везде подставляет 5

Imd = num-2 ; вместо num ассемблер везде подставляет 3

mov al, num ;эквивалентно mov al,5, здесь 5-непосредственный операнд

В данном фрагменте определяются две константы, которые затем используются в качестве непосредственных операндов и командах пересылки MОV и сложе­ния ADD.

· Адресные операнды задают физическое расположение операнда в памяти путем указания двух составляющих адреса: сегмента и смещения (рис. 5.4). К примеру:

mov ax, dx: 0000h ; записать слово в ах из области памяти

; по физическому адресу 0000: 0000

Здесь третья команда MOV имеет адресный операнд.

рис. 5.4. Синтаксис адресных операндов

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

сld ; длина команды сld составляет 1 байт

□ 32-разрядные регистры ЕАХ, ЕВХ. ЕСХ, EDX, ESI, EDI, ESP, EBP;

□ 16-разрядные регистры АХ, ВХ, СХ, DX, SI, DI, SP, ВР;

□ 8-разрядные регистры АН, AL, BH, BL, СН, CL, DH, DL;

□ сегментные регистры CS, D5, SS, ES, FS, GS;

□ системные регистры CR0, CR2, CR3, CR4, DR0, DR1, DR2, DR3, DR6, DR7 (см. описание команды MOV в приложении).

Например, команда add ax,bx складывает содержимое регистров АХ и ВХ и запи­сывает результат в ВХ. Команда dec si уменьшает содержимое SI на 1.

mov al, 4 ;константу 4 заносим в регистр al

add al, dl ;команда с регистровыми операндами

in al,60h; ввести байт из порта 60h

Регистры, адресуемые с помощью порта ввода-вывода, могут иметь разрядность 8,16 или 32 бита, но для конкретного порта разрядность регистра фиксирована. Команды IN и OUT работают с фиксированной номенклатурой объектов. В каче­стве источника информацииили получателя применяются так называемыерегистры-аккумуляторы ЕАХ, АХ, AL. Выбор регистра определяется разрядностьюпорта. Номер порта может задаваться непосредственнымоперандом в коман­дах IN и OUT или значением в регистре DX. Последний способ позволяет динами­чески определить номер порта в программе. Например:

mov dx,20h ; записать номер порта 20h в регистр dx

mov al,20h ; записать значение 20h в регистр al

out dx.al ; вывести значение 20h в порт 20Н

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

Записи (аналогично структурному типу) используются для доступа к битово­муполю некоторой записи (глава 13).

Операнд находится в стеке.

Операнд располагается в памяти. Это наиболее сложный и в то же время наи­более гибкий способ задания операндов. Он позволяет реализовать прямой и кос­венный варианты адресации, являющиеся основными видами адресации.

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *