“Conocimiento Programación>Lenguajes De Programación

¿Por qué el programa de lenguaje de máquina escrito desde una computadora no se ejecutará en otra con una CPU diferente?

2015/2/23
Un programa de lenguaje de máquina escrito para una computadora no se ejecutará en otra con una CPU diferente porque el lenguaje de la máquina está directamente vinculado a la arquitectura específica de la CPU . Esto significa que las instrucciones están codificadas de una manera que solo el hardware de esa CPU en particular puede comprender y ejecutar. Las diferencias caen en varias áreas clave:

* Arquitectura del conjunto de instrucciones (ISA): Este es el conjunto fundamental de instrucciones que entiende una CPU. Diferentes CPU (incluso del mismo fabricante) tienen diferentes ISA. ¿Cuál es una simple instrucción de adición en una CPU podría ser una operación compleja de múltiples pasos en otro, o ni siquiera podría existir? La codificación de estas instrucciones (los patrones de bits específicos que representan cada instrucción) varía enormemente entre ISAS.

* Número de registros: Las CPU tienen registros internos para el almacenamiento de datos temporales. El número y el tamaño de estos registros difieren entre las CPU. Un programa escrito para usar un número y tipo de registros específicos no funcionará en una CPU con una configuración diferente.

* Modos de direccionamiento de memoria: La forma en que la CPU accede a la memoria (por ejemplo, direccionamiento directo, direccionamiento indirecto, etc.) varía entre las arquitecturas. El código de la máquina refleja estos modos de direccionamiento, lo que lo hace incompatible con las CPU utilizando diferentes métodos.

* Representaciones de datos: La forma en que los tipos de datos (enteros, números de punto flotante, etc.) se representan en formato binario pueden diferir. Un programa compilado para la representación de datos de una CPU podría producir resultados incorrectos o incluso bloqueos en una CPU con una representación diferente.

* Llamadas del sistema: Los programas a menudo interactúan con el sistema operativo a través de llamadas al sistema. La forma en que se realizan estas llamadas y los códigos específicos utilizados son CPU y específicos del sistema operativo, lo que agrega otra capa de incompatibilidad.

En esencia, el código de la máquina es extremadamente de bajo nivel y está bien acoplado al hardware físico. Intentar ejecutar el código de la máquina compilado para una CPU en una diferente es como tratar de reproducir un récord destinado a un tocadiscos de 33 ° RPM en un plato giratorio de 45 rpm:las velocidades son diferentes y el resultado es galimatías. Los idiomas de nivel superior (como C ++, Java, Python) resuelven este problema mediante el uso de compiladores o intérpretes para traducir el código en un formulario adecuado para la arquitectura de la CPU objetivo.

Lenguajes De Programación
¿Qué son las técnicas de programación defensiva?
¿Cuáles son los inconvenientes de los lenguajes de programación orientados al procedimiento?
Cómo asignar un nombre de una variable Utilizar una macro SAS
Cómo convertir una bits en un byte
¿Qué es un error de ejecución
Diferencia entre el nivel alto y nivel bajo en Programación
¿Qué es un sistema de codificación?
Código FCM en MATLAB
Conocimiento de la computadora © http://www.ordenador.online