what studio programming program microcode language computer compiler assembly machine-code microcoding

assembly - studio - ¿Hay un lenguaje de programación "debajo" de la Asamblea?



what is assembly (17)

¿Hay un lenguaje de programación "debajo" de la Asamblea?


Bueno, hay lenguaje de máquina, como otros han mencionado. El lenguaje de la máquina suele ser una traducción de 1 a 1 de lo que se escribe en el ensamblaje, por lo que está en el mismo nivel de abstracción que el código de ensamblaje; es mucho más difícil escribir a mano.

Hay excepciones a esto, como las pseudo-instructions proporcionadas por el lenguaje ensamblador MIPS.

Hay, o tal vez debería decir , un nivel por debajo incluso del lenguaje ensamblador / máquina: Microcode . Los presupuestos modernos de transistores lógicos son lo que son, sospecho que el microcódigo está perdiendo relevancia.


Bueno, siempre puedes escribir código en binario (o hexadecimal, o alguna otra representación). A continuación, tendrá que calcular desplazamientos de salto, etc. en su cabeza. No recomendado. ;)


Claro: "código máquina", sobre el cual, Wikipedia, en el artículo sobre Assembly Language ( http://en.wikipedia.org/wiki/Assembly_language ), dice: "implementa una representación simbólica de los códigos de máquina numérica y otras constantes necesarias para programar una arquitectura de CPU particular ".



Creo que lo más bajo que puedes obtener es algo llamado Física o TRW (The Real World). Esto es lo que usan los diseñadores y fabricantes de chips para crear CPU y otros procesadores que pueden aprovechar el rendimiento de los lenguajes de computadora y convertirlos en algo valioso.


Depende de por qué estás preguntando. No hay nada que no puedas hacer en ensamblaje que puedas hacer a través de otro método. El código de máquina es solo otra representación de los mismos datos exactos.


El ensamblador lo traduce en código de máquina. Podrías escribirlo con un editor binario. (¡Ay!) Las computadoras CISC pueden tener microcódigo, que secuencia segmentos del chip (ALU, búsqueda de memoria, etc.). Por lo general, nadie escribe microcódigo, excepto en el fabricante del chip.


El ensamblaje es una representación de texto del código de máquina. Tiene una sola declaración que representa una sola instrucción dentro de la CPU. "MOV X, Y", por ejemplo, es una instrucción única que pasa a través de la CPU y mueve un valor X a la posición Y. Para obtener el código de máquina, la CPU tendrá un número que representa ''MOV'', y un número que representa ''X'' (si aún no es un número) y un número que representa Y. Estos valores binarios de HEX brutos son el código de máquina. Son los números los que hacen que la CPU dirija voltajes / corrientes a través de los transistores para que haga lo que hace.

El código de máquina es un nivel inferior, pero está muy cerca del ensamblaje. Está tan cerca, que nadie se molesta en usarlo debido a las ventajas de poder leer la instrucción "MOV" = mover. Los nombres de las variables también se vuelven legibles en lugar de direcciones sin procesar en la pila o el montón.


El lenguaje de ensamblaje es el piso inferior del edificio de lenguaje de programación ya que el código de máquina no es un lenguaje porque no involucra reglas gramaticales a seguir. El código de máquina puede ser el único formato de datos para ejecutar operaciones de microprocesador: la CPU obtiene datos de la memoria y ejecuta las instrucciones directamente de acuerdo con el código de máquina que se haya obtenido.

Sin embargo, en algunos diseños recientes, como el Intel Pentium 4 y posteriores, el código de máquina es la expresión de un nivel más bajo de operaciones de la unidad de ejecución RISC, conocidas como uops o microoperaciones. Entonces la lógica de descodificación de esos diseños es traducir las instrucciones de tipo CISC en uops pequeños que generalmente están dirigidos a una unidad de carga / almacenamiento más simple, similar a RISC. En este aspecto, podemos decir (aunque esto puede no ser técnicamente exacto) que el código de máquina describe las instrucciones complejas de "alto nivel" de la arquitectura, no las operaciones "reales" que se llevan a cabo atómicamente por la lógica de ejecución subyacente de la CPU .

Así que tenemos un conjunto de instrucciones arquitectónicas, o código de máquina arquitectónica, y un conjunto de "microinstrucciones" de nivel interno que está oculto del mundo exterior. La memoria caché de seguimiento de los procesadores Intel se concibió para almacenar tales operaciones para optimizar el rendimiento superescalar del procesador (ya que la CPU ejecuta uops, no el conjunto de instrucciones arquitectónicas disponibles para la ejecución por los programas).


En realidad, hay un nivel de código que se encuentra debajo del código de la máquina, llamado Microcode .


Incluso debajo del código de la máquina, podría decirse, está el diseño del chip VHDL. Ni siquiera necesita diseñar el chip para ejecutar el código, sino simplemente transformar las entradas en salidas.

(No es que yo sea un experto, estoy usando C ++)


Las primeras computadoras (ENIAC) usaron cableado duro para que la salida de un cómputo pudiera alimentarse como entrada a otro. Para ejecutar otro programa, debe desconectar algunos cables y volver a conectarlos de manera diferente.


Más o menos Las máquinas no leen ensamblaje, leen "lenguaje de máquina", que es en qué se convierte el ensamblaje. El lenguaje de máquina tiene "códigos de operación" en lugar de mnemónicos de ensamblaje, y estos códigos de operación son generalmente solo datos binarios. El código de máquina generalmente no se considera legible por humanos.

En los sistemas RISC, el código de máquina es a menudo una traducción directa del ensamblaje, pero en los sistemas x86, en particular, los dos son bastante diferentes.


Podría enviar corrientes eléctricas a la CPU y decirle dónde colocar los píxeles. (Bastante binario, pero no usa la computadora para escribirlo).


Si por debajo, te refieres a un nivel más bajo, entonces sí. Hay lenguaje de máquina. El ensamblaje se convierte en lenguaje de máquina antes de ejecutarse. En muchos procesos modernos, el lenguaje de máquina se emula en microcódigo. Vea Microcode para más detalles sobre microcódigo.


Y para ir aún más bajo (no es que la palabra "idioma" sea apropiada para el lenguaje "máquina" o incluso para capas físicas más bajas), pero debajo del lenguaje de máquina está la configuración de las muchas compuertas y conmutadores utilizados para implementar cada código binario el hardware particular (CPU) involucrado ... Un gran libro para leer que cubre este nivel incluso más bajo es por Charles Petzold, llamado " CODE "


Código de máquina Tiempo fue programadores codificados en el 1 y 0 de binario. Hex fue considerado un avance sobre esto. Eso fue antes del ensamblaje, que usa los nombres del código y separa las partes de una instrucción en sus partes.