Red de conocimiento informático - Conocimiento de la instalación - La relación entre el código de máquina, el conjunto de instrucciones de la CPU, el conjunto de instrucciones de ensamblaje, el sistema operativo, la interfaz API y la biblioteca estándar C.

La relación entre el código de máquina, el conjunto de instrucciones de la CPU, el conjunto de instrucciones de ensamblaje, el sistema operativo, la interfaz API y la biblioteca estándar C.

Hola, déjame explicarte brevemente el problema que mencionaste, solo como referencia.

1. Diferentes CPU definitivamente corresponden a diferentes códigos de máquina. De hecho, esta declaración no está estandarizada. Deben ser diferentes conjuntos de códigos de máquina, o conjuntos de instrucciones de máquina, porque las instrucciones de ensamblaje y las instrucciones de máquina son las mismas. En consecuencia, también se puede decir que es un conjunto de instrucciones de ensamblaje. El programa que escribimos finalmente se procesa (en este caso, dependiendo del lenguaje de alto nivel, puede interpretarse, precompilarse, compilarse, vincularse, etc.) en una secuencia de instrucciones que consta de instrucciones del conjunto de instrucciones ensambladoras, que luego se transfieren. a la memoria y ejecutadas una por una por la CPU, que conoce el propósito de cada una de estas instrucciones.

El signo "+" que mencionaste es en realidad una instrucción de suma, pero por supuesto no puede ser "010101" porque no hay instrucciones de 6 bits, solo de 4 bits, 8 bits y 16 bits. e instrucciones de 32 bits o instrucciones de 64 bits.

Los diferentes modelos de CPU con el mismo número de bits tienen conjuntos de instrucciones ligeramente diferentes, pero la mayoría de las instrucciones deberían ser las mismas. Por ejemplo, las operaciones aritméticas como "+" como mencionaste y, por supuesto, muchas más instrucciones, están codificadas en el mismo código binario. Por eso puedes usar una CPU INTEL y una CPU AMD en la misma computadora, eso no significa que si cambias la CPU, la computadora no funcionará.

Entonces, ¿una CPU de 32 bits aún puede ejecutar instrucciones de 16 bits? Entonces, ¿puede una CPU de 64 bits seguir ejecutando instrucciones de 32 y 16 bits? Todo depende de si la CPU es compatible con versiones anteriores o no. Si su programa (archivo exe) es tan antiguo que aparece un error o una pantalla azul cuando se ejecuta, entonces es incompatible y la CPU ya no reconoce las instrucciones "antiguas" del programa.

2. Esta pregunta se plantea claramente en la respuesta 1. El código de máquina es la instrucción de la CPU y el conjunto de instrucciones de la CPU es la colección de código de máquina. Para decirlo sin rodeos, es la API (. interfaz de programación de aplicaciones) de la CPU, pero la aplicación aquí se refiere al lenguaje ensamblador.

3 y 2 son el mismo problema. Por supuesto, el conjunto de instrucciones de ensamblaje y el conjunto de instrucciones de la CPU están en correspondencia uno a uno. Cuando se produce una nueva CPU, su conjunto de instrucciones es fijo. Luego, el fabricante lanza un nuevo sistema de ensamblaje correspondiente que coincide con su conjunto de instrucciones. Luego, los desarrolladores de sistemas de ensamblaje actualizan sus sistemas para agregar nuevas funciones.

4. La biblioteca estándar de C también es un programa compuesto por instrucciones de máquina. Por supuesto, está relacionado con el conjunto de instrucciones de la CPU. El llamado estándar no es para lenguaje de máquina, sino para código C. Por ejemplo, sin (x); esta función, en diferentes computadoras (PC, Apple, incluso teléfonos móviles, microcontroladores, etc.), el código escrito en lenguaje C es sin (x) y no será ningún otro (como sn). (incógnita)). La colección de todas estas funciones es la biblioteca estándar. Por lo tanto, el programa C estándar que escribimos se puede compilar en una computadora personal en instrucciones de máquina que una computadora personal puede ejecutar, o se puede compilar en una computadora Apple en instrucciones de máquina que una computadora Apple puede ejecutar. traductor" en la computadora personal. También hay "traductores" de Apple en las computadoras Apple. Traducirán el mismo programa C que usted escriba en diferentes instrucciones de máquina, pero el resultado final del programa es el mismo. Esto es portabilidad porque sigue un estándar. Los estándares no solo se refieren a la biblioteca estándar, sino que también incluyen tipos de datos, palabras clave, operadores, sintaxis, etc. Por supuesto, la implementación de la biblioteca estándar está estrechamente relacionada con el conjunto de instrucciones de la CPU de la computadora que está utilizando, y la implementación del compilador de lenguaje C puede ser una implementación de lenguaje de máquina, lenguaje ensamblador o lenguaje C. Jaja, esto no parece muy fácil de entender. La llamada compilación consiste en convertir su programa fuente compuesto de caracteres en un binario que la máquina pueda entender. El binario no es más que una cadena de símbolos compuesta de 0 y 1. Primero se almacena en el disco duro y luego se transfiere a. la memoria para su ejecución. El lenguaje de máquina, el lenguaje ensamblador y el lenguaje C pueden procesar binarios y producir el archivo binario final, consulte.

Las funciones de la biblioteca del lenguaje C básicamente no tienen nada que ver con la API de Windows. Windows tiene su propio conjunto de funciones de biblioteca, es decir, API. De hecho, la biblioteca estándar del lenguaje C no tiene significado.

Si escribimos alguna aplicación sin una interfaz gráfica de usuario, como una aplicación de consola, aún podemos usar la biblioteca estándar.

5. Si no comprende el conjunto de instrucciones de la CPU, ¿cómo puede maximizar la eficiencia de Windows? El lenguaje ensamblador y el lenguaje C están más estrechamente relacionados con la CPU, por lo que, por supuesto, deben usarse para escribir.

La llamada encapsulación consiste en ocultar su implementación y exponer su interfaz. Al igual que la CPU, sabemos que SUMAR A, B es calcular A más B. No necesitamos saber cómo calcularlo. El conjunto de instrucciones de la CPU es la API que nos proporciona el bare metal (sin sistema operativo).

Una computadora con Windows instalado es en realidad una "máquina virtual" construida sobre metal. ".Esto es como un recién nacido y un adulto. El recién nacido en realidad tiene todas las características de un humano, pero no puedes comunicarte con él (ni siquiera puedes comunicarte con lenguaje de máquina, risas), pero sí entiende todo. Se puede decir ¿Puede un recién nacido hablar inglés? Él puede. Tiene todas las condiciones para hablar inglés, porque tiene boca, puede pronunciarlo y puede hablarlo si tiene boca. Sin embargo, es realmente difícil para él. un recién nacido habla inglés, es decir, esta API no funciona bien. Un adulto es un recién nacido adulto con un sistema operativo instalado, por ejemplo, sus músculos están más desarrollados (equivale a la adición de periféricos). Puede funcionar muy bien. Lee y habla bien inglés (puede usar un lenguaje de alto nivel. Pero al final del día, todavía tiene que hablar inglés con la boca como un recién nacido. ¡Solo significa una API más rica, pase lo que pase!). come. O granos, eventualmente se convierten en aminoácidos, glucosa, oligoelementos y agua para la absorción intestinal. No importa en qué idioma escriba el programa, en última instancia es una instrucción de máquina binaria ejecutada por la CPU.

La API es esencialmente una colección de llamadas al sistema de Windows que llaman a todas las funciones que Windows nos proporciona, como la creación de ventanas. Si Windows no proporciona estas colecciones, ¿será útil Windows? para implementarlo, Esta es una pregunta para Microsoft