Jump to content

Код операции

В вычислениях опкод [1] [2] (сокращенно от кода операции , [1] также известный как командный машинный код , [3] код инструкции , [4] инструктивный слог , [5] [6] [7] [8] посылка с инструкциями или строка [9] [2] ) — это часть машинного языка инструкции , определяющая выполняемую операцию. Помимо самого кода операции, большинство инструкций также определяют данные, которые они будут обрабатывать, в форме операндов . В дополнение к кодам операций, используемым в архитектурах набора команд различных процессоров , которые являются аппаратными устройствами, они также могут использоваться в абстрактных вычислительных машинах как часть их спецификаций байт-кода .

Спецификации и формат кодов операций заложены в архитектуре набора команд ( ISA ) рассматриваемого процессора, который может быть обычным ЦП или более специализированным процессором. [10] Коды операций для данного набора команд можно описать с помощью таблицы кодов операций, подробно описывающей все возможные коды операций. Помимо самого кода операции, инструкция обычно также имеет один или несколько спецификаторов операндов (т.е. данных), над которыми должна действовать операция, хотя некоторые операции могут иметь неявные операнды или вообще не иметь их. [10] Существуют наборы инструкций с почти одинаковыми полями для опкодов и спецификаторов операндов, а также другие ( например, архитектура x86 ) с более сложной структурой переменной длины. [10] [11] Наборы инструкций можно расширить за счет использования префиксов кодов операций , которые добавляют подмножество новых инструкций, состоящих из существующих кодов операций, следующих за зарезервированными последовательностями байтов. [ нужна ссылка ]

Операнды

[ редактировать ]

В зависимости от архитектуры операндами могут быть значения регистров , значения в стеке , другие памяти значения , порты ввода -вывода (которые также могут быть отображены в памяти ) и т. д., указанные и доступные с использованием более или менее сложных режимов адресации . [ нужна ссылка ] К типам операций относятся арифметические операции , копирование данных, логические операции и программное управление, а также специальные инструкции (такие как CPUID и другие). [10]

Язык ассемблера , или просто ассемблер , — это язык программирования низкого уровня , который использует мнемонические инструкции и операнды для представления машинного кода . [10] Это повышает читаемость, сохраняя при этом точный контроль над машинными инструкциями. Большая часть программирования в настоящее время выполняется с использованием языков программирования высокого уровня . [12] которые обычно легче понять и записать людям. [10] Эти языки необходимо скомпилировать (перевести на ассемблер) с помощью или запустить системного компилятора через другие скомпилированные программы. [13]

Наборы инструкций программного обеспечения

[ редактировать ]

Коды операций также можно найти в так называемых байт-кодах и других представлениях, предназначенных для программного интерпретатора, а не для аппаратного устройства. Эти программные наборы команд часто используют типы данных и операции немного более высокого уровня, чем большинство аппаратных аналогов, но, тем не менее, построены по схожему принципу. Примеры включают байт-код, найденный в файлах классов Java , которые затем интерпретируются виртуальной машиной Java (JVM), байт-код, используемый в GNU Emacs для скомпилированного Lisp кода , .NET Common Intermediate Language (CIL) и многие другие. [14]

См. также

[ редактировать ]
  1. ^ Jump up to: а б Бэррон, Дэвид Уильям (1978) [1971, 1969]. «2.1. Символические инструкции». Написано в Саутгемптонском университете , Саутгемптон, Великобритания. Во Флоретине, Дж. Джон (ред.). Сборщики и грузчики . Компьютерные монографии (3-е изд.). Нью-Йорк, США: Elsevier North-Holland Inc., с. 7. ISBN  0-444-19462-2 . LCCN   78-19961 . (xii+100 страниц)
  2. ^ Jump up to: а б Тиба, Сигеру (2007) [1999]. «Javassist, набор инструментов для перевода байт-кода Java» . Архивировано из оригинала 2 марта 2020 г. Проверено 27 мая 2016 г.
  3. ^ «Приложение B. Коды машинных инструкций» (PDF) . Руководство по программированию на языке ассемблера MCS-4 — Руководство по программированию микрокомпьютерной системы INTELLEC 4 (предварительное издание). Санта-Клара, Калифорния, США: Корпорация Intel . Декабрь 1973 г. стр. B-1–B-8. MCS-030-1273-1. Архивировано (PDF) из оригинала 01 марта 2020 г. Проверено 02 марта 2020 г.
  4. ^ Рафаэль, Ховард А., изд. (ноябрь 1974 г.). «Функции компьютера: регистр инструкций и декодер» (PDF) . Руководство пользователя MCS-40 для разработчиков логики . Санта-Клара, Калифорния, США: Корпорация Intel . п. viii. Архивировано (PDF) из оригинала 03 марта 2020 г. Проверено 3 марта 2020 г. […] Каждая операция, которую может выполнить процессор, идентифицируется уникальным двоичным числом, известным как код инструкции. […]
  5. ^ Джонс, Дуглас В. (июнь 1988 г.). «Минимальный CISC» . Новости компьютерной архитектуры ACM SIGARCH . 16 (3). Нью-Йорк, США: Ассоциация вычислительной техники (ACM): 56–63. дои : 10.1145/48675.48684 . S2CID   17280173 .
  6. ^ Домагала, Лукаш (2012). «7.1.4. Пакет эталонных тестов» . Применение CLP для планирования команд по модулю для процессоров VLIW . Гливице, Польша: Компьютерная студия Яцека Скалмиерского. стр. 80–83 [83]. ISBN  978-83-62652-42-6 . Архивировано из оригинала 2 марта 2020 г. Проверено 28 мая 2016 г.
  7. ^ Смотерман, Марк (2016) [2013]. «Проблема с несколькими инструкциями» . Школа вычислительной техники Университета Клемсона. Архивировано из оригинала 28 мая 2016 г. Проверено 28 мая 2016 г.
  8. ^ Джонс, Дуглас В. (2016) [2012]. «Минимальный CISC» . Онлайн-коллекция компьютерной архитектуры . Айова-Сити, США: Университет Айовы , факультет компьютерных наук. Архивировано из оригинала 2 марта 2020 г. Проверено 28 мая 2016 г.
  9. ^ Шульман, Эндрю (1 июля 2005 г.). «Поиск двоичных клонов с помощью опстрингов и функциональных дайджестов» . Журнал доктора Добба . Часть I. Том. 30, нет. 7. ООО «СМП Медиа» . стр. 69–73. ISSN   1044-789X . №374. Архивировано из оригинала 2 марта 2020 г. Проверено 2 марта 2020 г .; Шульман, Эндрю (1 августа 2005 г.). «Поиск двоичных клонов с помощью опстрингов и функциональных дайджестов» . Журнал доктора Добба . Часть II. Том. 30, нет. 8. ООО «СМП Медиа» . стр. 56–61. ISSN   1044-789X . №375. Архивировано из оригинала 2 марта 2020 г. Проверено 28 мая 2016 г .; Шульман, Эндрю (1 сентября 2005 г.). «Поиск двоичных клонов с помощью опстрингов и функциональных дайджестов» . ООО «СМП Медиа» . Часть III. Том. 30, нет. 9. Объединенные Бизнес Медиа . стр. 64–70. ISSN   1044-789X . №376. Архивировано из оригинала 2 марта 2020 г. Проверено 28 мая 2016 г.
  10. ^ Jump up to: а б с д и ж Хеннесси, Джон Л.; Паттерсон, Дэвид А.; Асанович, Крсте ; Бакос, Джейсон Д.; Колвелл, Роберт П.; Бхаттачарджи, Абхишек; Конте, Томас М.; Дуато, Хосе; Франклин, Диана; Гольдберг, Дэвид; Джуппи, Норман П.; Ли, Шэн; Муралиманохар, Навин; Петерсон, Грегори Д.; Пинкстон, Тимоти М.; Ранганатан, Партасарати; Вуд, Дэвид А.; Янг, Клифф; Заки, Амр (23 ноября 2017 г.). Компьютерная архитектура: количественный подход (6-е изд.). Кембридж, Массачусетс, США: Издательство Morgan Kaufmann . ISBN  978-0-12811905-1 . OCLC   983459758 .
  11. ^ Мэнсфилд, Ричард (1983). «Введение: почему машинный язык?» . Машинный язык для начинающих . Вычислите! Книги (1-е изд.). Гринсборо, Северная Каролина, США: ВЫЧИСЛИТЕ! Публикации, Инк. , Американские радиовещательные компании, Инк .; Small System Services, Inc. ISBN  0-942386-11-6 . Архивировано из оригинала 13 февраля 2008 г. Проверено 28 мая 2016 г.
  12. ^ «Популярность языка программирования» . langpop.com . 25 октября 2013 г. Архивировано из оригинала 11 апреля 2015 г. Проверено 10 октября 2015 г.
  13. ^ Суонсон, Уильям (2001). «Введение в язык ассемблера» . Свонсон Технологии . Архивировано из оригинала 2 марта 2020 г. Проверено 10 октября 2015 г.
  14. ^ «Определение байт-кода» . Журнал ПК . Энциклопедия журнала PC Magazine. Архивировано из оригинала 6 октября 2012 г. Проверено 10 октября 2015 г.

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 085f55cd6937645faa45e819658b779a__1713233520
URL1:https://arc.ask3.ru/arc/aa/08/9a/085f55cd6937645faa45e819658b779a.html
Заголовок, (Title) документа по адресу, URL1:
Opcode - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)