5

Estaba pensando, ¿cómo interpretan las máquinas el código binario? Todo lo que entiendo es que tu código get se convirtió en 1 y 0 para que la máquina pueda entenderlos, pero ¿cómo lo hacen? ¿Es solo un texto normal para la traducción binaria?¿Cómo interpretan las máquinas el binario?

Respuesta

12

En primer lugar, "binario" no significa lo que usted piensa que significa (cualquier información en la computadora, incluido el texto ya es binario, simplemente la forma en que decidimos mostrar y manejar es diferente).

En segundo lugar, la compilación no es una simple transformación a personajes divertidos (si fuera así, no necesitaríamos compiladores diferentes para diferentes idiomas). Para comprender realmente el código de máquina, debe comprender la arquitectura a la que apunta. Hay muchas arquitecturas de computadora, tu PC es solo una de ellas. Es un tema muy amplio y necesita una comprensión firme de la arquitectura de la computadora para comprender.

Mostraré un ejemplo de instrucciones MIPS. Si estás interesado, puedes seguir leyendo y obtener algunos conocimientos reales sobre el tema, prueba los enlaces al final de mi publicación.

MIPS es un tema de introducción popular porque su formato de instrucción es uno de los más fáciles de digerir. Las instrucciones MIPS tienen 32 bits de ancho. Hay 3 tipos de instrucciones en MIPS: "R", "I" y "J". Echaremos un vistazo a las instrucciones "I".

Cuando el procesador recibe una instrucción (32 bits de datos) lo lee y decide qué hacer con él. "I" instrucciones tener este aspecto:

|------|-----|-----|----------------| 
opcode rs rt immediate 
    6  5  5  16    (the numbers show how wide are each part) 

El significado de estos:

  • código de operación dice qué tipo de instrucción se trata (por ejemplo: suma, resta, multiplicación y muchos otros). Todas las instrucciones (incluidos los tipos "R" y "J") comienzan con el código de operación de 6 bits, y así es como el procesador sabe de qué tipo es.
  • rs y rt son registros, un tipo de almacenamiento en el procesador que puede contener valores de 32 bits. MIPS tiene 32 de estos y se identifican por su número. Esto no es lo mismo que memoria, está dentro de la CPU.
  • inmediatamente es un número. Se llama así porque el número está "justo allí" en la instrucción, no en un registro o memoria.

Un ejemplo concreto de la adición de un inmediata a un número almacenado en un registro:

001000 00001 00010 0000000000000011 

En este ejemplo, se rompió la instrucción en partes más que el anterior.El significado de los valores es la siguiente:

  • código de operación: 001000 significa addi o "Agregar inmediata".
  • rs: 00001 es 1 en decimal, por lo que esta parte de la instrucción indica al procesador que queremos utilizar el registro 1 como rs.
  • rd: 00010 es 2 en decimal, la misma idea que con rs.
  • inmediato: 0000000000000011 es 3 en decimal.

La instrucción addi funciona así: se toma el valor encontrado en rs y añade el valor inmediata a ella. Después de eso, coloca el resultado en rd. Entonces, cuando la instrucción esté lista, rd contendrá 3 + 2 = 5.

En pocas palabras, los compiladores analizan el texto y generan instrucciones para el procesador de destino que hace lo mismo que pretendía hacer con su programa. Como puede ver, hay una gran brecha entre la representación textual del programa que los programadores escriben y el código máquina ejecutable.

Unos recursos útiles en MIPS y arquitectura de computadores:

0

Es un gran tema lo que estás preguntando. Recomendaría el excelente libro The elements of computing systems para una descripción general de cómo se construyen las computadoras y los compiladores en principio. Es bastante fácil de seguir y los ejercicios son divertidos de hacer. La mayor parte está disponible en línea en el enlace proporcionado.

This question también tiene algunos buenos enlaces sobre el tema.

0

Piense en ello de esta manera. Tiene 8 interruptores de potencia cada interruptor tiene apagado (0) o encendido (1). La computadora verá los 8 conmutadores como 1. Ahora es muy parecido a un bloqueo de combinación. Cada símbolo en su teclado tiene una combinación.

Cuestiones relacionadas