Código de operación
En informática, un código de operación (abreviado de código de operación, también conocido como código de máquina de instrucción, código de instrucción, sílaba de instrucción, paquete de instrucción o opstring) es la parte de una instrucción en lenguaje de máquina que especifica la operación a realizar. Además del código de operación en sí, la mayoría de las instrucciones también especifican los datos que procesarán, en forma de operandos. Además de los códigos de operación utilizados en las arquitecturas del conjunto de instrucciones de varias CPU, que son dispositivos de hardware, también se pueden utilizar en máquinas informáticas abstractas como parte de sus especificaciones de código de bytes.
Resumen
Las especificaciones y el formato de los códigos de operación se establecen en la arquitectura del conjunto de instrucciones (ISA) del procesador en cuestión, que puede ser una CPU general o una unidad de procesamiento más especializada. Los códigos de operación para un conjunto de instrucciones dado se pueden describir mediante el uso de una tabla de códigos de operación que detalla todos los códigos de operación posibles. Además del código de operación en sí mismo, una instrucción normalmente también tiene uno o más especificadores de operandos (es decir, datos) sobre los que debe actuar la operación, aunque algunas operaciones pueden tener operandos implícitos, o ninguno en absoluto. Hay conjuntos de instrucciones con campos casi uniformes para códigos de operación y especificadores de operandos, así como otros (la arquitectura x86, por ejemplo) con una estructura de longitud variable más complicada. Los conjuntos de instrucciones se pueden ampliar mediante el uso de prefijos de código de operación que agregan un subconjunto de nuevas instrucciones compuestas de códigos de operación existentes siguiendo secuencias de bytes reservadas.
Operandos
Dependiendo de la arquitectura, los operandos pueden ser valores de registro, valores en la pila, otros valores de memoria, puertos de E/S (que también pueden estar mapeados en memoria), etc., especificados y accedidos usando Modos de direccionamiento más o menos complejos. Los tipos de operaciones incluyen aritmética, copia de datos, operaciones lógicas y control de programas, así como instrucciones especiales (como CPUID y otras).
El lenguaje ensamblador, o simplemente ensamblado, es un lenguaje de programación de bajo nivel que usa instrucciones mnemotécnicas y operandos para representar código de máquina. Esto mejora la legibilidad al mismo tiempo que brinda un control preciso sobre las instrucciones de la máquina. La mayor parte de la programación actualmente se realiza utilizando lenguajes de programación de alto nivel, que suelen ser más fáciles de entender y escribir para los humanos. Estos lenguajes deben ser compilados (traducidos a lenguaje ensamblador) por un compilador específico del sistema o ejecutados a través de otros programas compilados.
Conjuntos de instrucciones de software
Los códigos de operación también se pueden encontrar en los llamados códigos de bytes y otras representaciones destinadas a un intérprete de software en lugar de un dispositivo de hardware. Estos conjuntos de instrucciones basados en software a menudo emplean tipos de datos y operaciones de nivel ligeramente más alto que la mayoría de las contrapartes de hardware, pero, sin embargo, se construyen de manera similar. Los ejemplos incluyen el código de bytes que se encuentra en los archivos de clase de Java que luego son interpretados por la máquina virtual de Java (JVM), el código de bytes utilizado en GNU Emacs para el código Lisp compilado,.NET Common Intermediate Language (CIL) y muchos otros.
Contenido relacionado
Cábala de la columna vertebral
Bomba de calor
Fibra de madera