Опкод
Опкод определяет, какая основная операция компьютера в наборе инструкций должна быть выполнена. Используется при написании машинного кода. Он сообщает компьютеру, что нужно что-то делать. Каждая инструкция машинного языка обычно содержит как опкод, так и операнды. Опкод подобен глаголу в предложении, а операнды подобны сюжету в предложении. Операндов обычно представляют собой адреса памяти или реестра.
Опкоды используются в машинном коде для ряда функций, включая Float Addition of registers, Two's compliment addition of registers, Shifting registers values to memory, или на жестком диске, остановку программы и т.д. В современных компьютерах используются буквально сотни распространённых опкодов.
В связи с природой архитектуры компьютера, опкоды принимают форму двоичных чисел. В качестве альтернативы опкоды могут быть представлены шестнадцатеричными цифрами (например, 10100101 = A5) для удобства считывания и кодирования при проектировании или эмуляции машинно-кодовой программы. Затем эти значения преобразуются в их двоичные эквиваленты для сохранения. Современные опкоды - это как минимум два шестнадцатеричных символа длиной, которые занимают 1 байт дискового пространства.
Опкоды будут различаться по возможностям и "значениям" в зависимости от компьютера, к которому они относятся, так как они зависят от аппаратного обеспечения. Например, опкод для STORE, выраженный в Hex, может быть FA для одной машины и 02 для другой. Некоторые опкоды будут недоступны на некоторых компьютерах. В общем, есть два подхода к построению наборов команд. Компьютер с сокращенным набором команд (RISC) предлагает меньше возможных опкодов в пользу увеличения скорости для простых процессов. Сложный набор инструкций Computing (CISC) предлагает больше опкодов в пользу увеличения скорости для сложных процессов.
Опкоды редко используются программистами напрямую. Всякий раз, когда они непосредственно программируются в память, они гарантированно работают только на том компьютере, для которого они были разработаны. Когда программисты пишут на ассемблере, программа-переводчик преобразует операторы программы, один на один, в команды машинного языка. Программист должен запоминать только мнемонику для каждого опкода, а не его двоичное значение. В качестве альтернативы можно использовать язык программирования высокого уровня, скажем, 4-е поколение, который преобразуется в 3-е поколение и так далее, пока не достигнет 1-го поколения. Отсюда отдельный компьютер будет преобразовывать программу в машинный код всякий раз, когда файл программы читается. Таким образом, программа может работать на гораздо большем количестве компьютеров.
Вопросы и ответы
В: Что такое опкод?
О: Опкод - это двоичное число, которое определяет, какая базовая операция компьютера из набора инструкций должна быть выполнена. Он используется при написании машинного кода и указывает компьютеру, что делать.
В: Что такое операнды?
О: Операнды - это, как правило, адреса памяти или регистра, которые сопровождают опкод в инструкции машинного языка. Их можно рассматривать как подлежащее в предложении, в то время как операнд действует как глагол.
В: Сколько общих опкодов используется в современных компьютерах?
О: В современных компьютерах используются сотни распространенных опкодов.
В: Как представлены опкоды?
О: Опкоды могут быть представлены либо двоичными числами, либо шестнадцатеричными цифрами для удобства чтения и кодирования при разработке или эмуляции программы машинного кода.
В: Какова длина современных опкодов?
О: Современные опкоды имеют длину не менее двух шестнадцатеричных символов и занимают 1 байт памяти.
В: Что такое RISC и CISC?
О: Reduced Instruction Set Computing (RISC) предлагает меньше возможных операционных кодов в пользу увеличения скорости для простых процессов, в то время как Complex Instruction Set Computing (CISC) предлагает больше операционных кодов в пользу увеличения скорости для сложных процессов.
В: Как программисты обычно используют опкоды?
О: Программисты редко используют прямое программирование в память с определенным набором инструкций для конкретного компьютера; вместо этого они пишут программы, используя язык ассемблера или языки программирования высокого уровня, которые преобразуются в машинный код при каждом чтении программного файла, чтобы он мог работать на различных типах компьютеров.