Te recomendamos que pruebes esta respuesta en un ambiente controlado antes de enviarlo a producción, un saludo.
Solución:
Una arquitectura de conjunto de instrucciones (ISA) se corresponde físicamente con las operaciones de la máquina dentro de un procesador en particular. Esto significa que la ISA enumera todas y cada una de las instrucciones, así como los códigos de operación, que pueden ser realizados por procesadores específicos.
Un lenguaje ensamblador generalmente tiene una relación de 1 a 1 con el ISA, pero se puede implementar de diferentes maneras. A veces, el código ensamblador puede realizar un conjunto completo de instrucciones de nivel ISA.
Los lenguajes ensambladores son un conjunto abstracto de códigos de operación, lógica e instrucciones ISA que permiten variables/macros/funciones/métodos/etc. Pueden ser muy básicos (lo que significa un mapeo casi 1-1) o pueden admitir operaciones más complejas como bloques de programación estructural.
Dudo que haya definiciones “autorizadas” de esos términos, pero aquí hay algunos sentidos en los que pueden no superponerse perfectamente:
- Si bien “ISA” estandariza una interfaz pública para un procesador que debe usarse como base para escribir programas que sean compatibles con los binarios con múltiples procesadores que implementan ISA, “lenguaje ensamblador” también puede referirse a lo que implementa un procesador específico, sin ser necesariamente compatible con otras implementaciones.
- En términos más generales, “una ISA” es un documento de normas, mientras que “lenguaje ensamblador” es un lenguaje de programación.
- Una ISA normalmente especificaría no solo las instrucciones y sus nombres, sino también una codificación binaria para ellas (como códigos de operación y codificaciones de argumentos). El término “lenguaje ensamblador” se refiere únicamente a la forma de texto de las instrucciones, sin referencia a su codificación.
Dicho esto, obviamente tienen mucha superposición, por lo que en textos no normativos sería bastante comprensible si se usan indistintamente en algunos contextos.
ISA significa arquitectura de conjunto de instrucciones. Como esas palabras implican, esta es la arquitectura basada en instrucciones para la que se diseñó un procesador en particular. Alguien en algún lugar sabe lo que hace esa arquitectura y las instrucciones (código de máquina) para que haga lo que hace.
El lenguaje ensamblador es un término para un lenguaje de programación. A diferencia de Java o Python, no existe un cuerpo estándar que haga una definición para un lenguaje ensamblador. Idealmente, para cada ISA hay un lenguaje ensamblador, pero no es tan raro que puedan existir más de uno o variaciones sutiles entre los lenguajes ensambladores para un ISA específico. El lenguaje ensamblador se define esencialmente por el ensamblador, a veces la palabra ensamblador también se usa para referirse al lenguaje en sí, trato de separar el lenguaje ensamblador, el lenguaje de programación y ensamblador, la utilidad de los programadores que toma el lenguaje ensamblador, lo analiza y lo convierte en codigo de maquina.
El lenguaje ensamblador es idealmente un lenguaje de programación en el que tiene una relación uno a uno entre cada mnemónico del lenguaje ensamblador y una instrucción en el conjunto de instrucciones (ISA). Pero este no es siempre el caso, hay cosas que te hacen la vida más fácil, como las etiquetas a las que puedes ramificarte. A menudo hay una serie de directivas en las que puede, por ejemplo, insertar algunos datos (un string desea imprimir tal vez). Y hay macros que no son diferentes a las macros en C, una forma en que puede escribir un código que desea reutilizar una vez en un lugar y luego simplemente usar el macro.
MIPS es una empresa que fabrica procesadores y el nombre de ISA y el nombre del lenguaje ensamblador y los procesadores llevarán el nombre MIPS. Al igual que los procesadores Intel, el lenguaje ensamblador y el conjunto de instrucciones pueden denominarse correctamente Intel (aunque también vemos x86 y otras variaciones). ARM, mismo trato, procesador, arquitectura, conjunto de instrucciones, lenguaje ensamblador.
Por lo general, el inventor de un conjunto de instrucciones (como en el grupo de personas que trabajan juntas, no necesariamente un ingeniero de chips individual), crea la documentación para ese conjunto de instrucciones, que generalmente incluye el código de la máquina. Junto con eso, suele haber una sintaxis de lenguaje ensamblador. A menudo, la sintaxis del manual de referencia es el punto de partida del ensamblador. No tan a menudo hay instrucciones que se definen aquí que en realidad son pseudoinstrucciones, nop es común, algunos conjuntos de instrucciones no quieren desperdiciar un código de operación y, en cambio, el ensamblador codifica agregar r0 + 0 o y r0, r0 o algo así que básicamente hace nada más que es una instrucción de aluminio real. MIPS tiene algunas instrucciones / mnemónicos de lenguaje ensamblador de uso común que son pseudoinstrucciones que el ensamblador genera para usted, debe recordar no usarlas en la sombra de la rama (ranura diferida, cualquier término que desee usar), o lo hará o debería ten cuidado
Ten en cuenta recomendar este escrito si te ayudó.