Código de operación, código de operación, código de operación : una parte del lenguaje de máquina llamada instrucción que define la operación a realizar.
La definición y el formato de los códigos de instrucción dependen del conjunto de instrucciones de un procesador determinado (que puede ser un procesador principal o más especializado para trabajar en un área en particular). A diferencia del propio código de operación, una instrucción generalmente tiene una o más definiciones para los operandos (es decir , datos ) en los que se realizará la operación, aunque algunas operaciones pueden tener operandos explícitos o ninguno. Hay conjuntos de instrucciones con campos de tamaño fijo similares para códigos de operación y definiciones de operandos, mientras que otros ( arquitectura x86 , por ejemplo) tienen una estructura de longitud variable más compleja. [una]
Dependiendo de la arquitectura, los operandos pueden ser valores de registro , valores de pila , otros valores en memoria , puertos de E/S y otros que se definen y acceden mediante varios métodos de direccionamiento . Los tipos de operaciones incluyen operaciones aritméticas , copia de datos, operaciones lógicas y otras construcciones de software, a diferencia de las instrucciones especiales (como CPUID y otras).
El lenguaje ensamblador , o simplemente ensamblador, es un lenguaje de programación de bajo nivel que utiliza mnemónicos , instrucciones y operandos para representar código de máquina. Esto mejora la legibilidad mientras mantiene un control total sobre las instrucciones de la máquina. También hay lenguajes de alto nivel que son más fáciles de escribir código grande que el lenguaje ensamblador. Dichos lenguajes deben compilarse para traducirlos a un lenguaje de máquina o ejecutarse utilizando otros programas: emuladores o intérpretes . [2]
El código de operación también se puede encontrar en el llamado código de bytes y otras representaciones diseñadas para intérpretes de software en lugar de hardware. Estos conjuntos de instrucciones de software a menudo usan tipos de datos y operaciones de nivel ligeramente más alto que la mayoría de las contrapartes de hardware, pero, no obstante, se basan en los mismos principios. Los ejemplos incluyen la máquina virtual Java (JVM) del lenguaje de programación Java , el código de bytes utilizado por Emacs para el código Lisp compilado y muchos otros. [3]