Código de operación

parte de una instrucción de máquina
(Redirigido desde «Opcode»)

En informática, un código de operación u opcode (acrónimo inglés de operation code) es la porción de una instrucción de lenguaje de máquina que especifica la operación a ser realizada. Su especificación y formato serán determinados por la arquitectura del conjunto de instrucciones (ISA) del componente de hardware de computador - normalmente un CPU, pero posiblemente una unidad más especializada.

Una instrucción completa de lenguaje de máquina contiene un opcode y, opcionalmente, la especificación de uno o más operandos - sobre los que la operación debe actuar. Algunas operaciones tienen operandos implícitos, o de hecho ninguno. Algunas ISAs tiene instrucciones con campos definidos para los opcodes y operandos, mientras que otras (ej. la arquitectura Intel x86) tienen una estructura más complicada y de propósito específico. Los operandos sobre los cuales los opcodes aplican pueden, dependiendo de la arquitectura del CPU, consistir en registros, valores en memoria, valores almacenados en la pila, puertos de I/O, bus, etc. Las operaciones que un opcode puede especificar pueden incluir aritmética, copia de datos, operaciones lógicas, y control del programa.

Los opcodes también pueden encontrarse en los bytecodes interpretados por un interpretador de código de byte (o la máquina virtual, en un sentido de ese término). En estos, una arquitectura de conjunto de instrucciones es creada para ser interpretada por software en vez de un dispositivo de hardware. A menudo, los interpretadores de código de byte trabajan con tipos de datos y operaciones de más alto nivel, que el de un conjunto de instrucciones por hardware, pero son construidas a lo largo de líneas similares. Ejemplos de ello son la máquina virtual de Java (JVM) del lenguaje de programación Java, el código de byte usado en GNU Emacs para el código compilado de LISP, y muchos otros.

El lenguaje de máquina es tedioso y difícil para que los seres humanos lo programen directamente, de modo que, si no se desea la abstracción dada por un lenguaje de programación de alto nivel, se emplea un lenguaje ensamblador. Aquí, se usan instrucciones mnemónicas que corresponden a las especificaciones del opcode y el operando de las instrucciones de lenguaje de máquina generadas. Esto da un mayor nivel de legibilidad y comprensibilidad que al trabajar directamente con operaciones de lenguaje de máquina, a la vez que sigue dando un control preciso del lenguaje de máquina generado. Un programa llamado ensamblador transforma el lenguaje ensamblador en código de máquina.

Véase también

editar

Referencias

editar