¿Hay un lenguaje de programación "debajo" del ensamblaje?¿Hay un lenguaje de programación "debajo" de la Asamblea?
Respuesta
Machine code. 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.
El código máquina es una traducción directa de Assembly, así que no diría que está debajo. – Marius
@marius, Mi pc puede ejecutar código de máquina, pero no ensamblar. Entonces no es igual;). – Dykam
No sé qué pueden hacer los programas de ensamblador de última generación en la actualidad, pero en los Días Antiguos, un macroensamblador podría hacer un poco de cosas automáticas para usted (entradas de función, haciendo un seguimiento del recuento de argumentos, asignación automática, expansión de macro condicional y otras cosas ordenadas que es una tarea rutinaria). Así que diría que el código de máquina es "más bajo" que el montaje por esa razón. – Vatine
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. ;)
Lo he hecho con 6502. Pero no creo que ingresar el código hexadecimal se pueda considerar un idioma ... ¡Hablo hex! :-) –
Código Máquina
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.
En realidad, en x86 también es una traducción directa. ¿Tienes algún ejemplo que demuestre lo contrario? –
En realidad, hay un nivel de código que se encuentra debajo del código de máquina, llamado Microcode.
Considero que el microcódigo es un código de máquina. Solo una variante diferente que vive en el procesador, en lugar de ejecutarse desde la memoria RAM. –
microcódigo es un bloque de ROM donde cada bit se usa para alternar algunos circuitos internos. una secuencia de 'palabras' guía a la CPU para realizar una sola instrucción de lenguaje de máquina, por lo tanto, está 'debajo' incluso del lenguaje de la máquina. – Javier
Estoy de acuerdo con Javier. Construimos un procesador microcodificado como parte de un curso universitario una vez. ¡Muy divertido! –
Sure: "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éricos y otras constantes necesarias para programar una arquitectura de CPU particular".
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. Ver this para más detalles sobre microcódigo.
Depende de por qué lo pregunta. 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.
No es 100% exacto .. No puede optimizar su ensamblaje a través de otro método. Quiero decir incluso una x * = 2; en C++ podría no compilarse hasta el ensamblaje más eficiente. Un ciclo for puede no usar el registro cx (8086). Hay cosas que solo puede hacer en serio ... Es por eso que todavía se usa como un lenguaje (por suma) – baash05
En realidad, hay algunas cosas que ni siquiera se pueden hacer con el ensamblaje. Algunos tipos de código de auto modificación, o el uso de instrucciones como datos y viceversa. (en x86 con instrucciones de longitud variable ... las posibilidades ...) – Artelius
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.
Bueno, muchos ensambladores realmente permiten etiquetas para sustituir una dirección. Entonces, el ensamblaje no es solo una representación de texto del código de máquina. – Calyth
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 soy un experto - Estoy usando C++)
Pero después de construir el chip, realmente no se puede programar. Entonces no creo que sea realmente relevante. –
Al usar esto en un FPGA, es _se_ reprogramable. Aún así, no soy un experto :) – xtofl
Y para ir aún más baja, (no es que la palabra "lengua" es apropiada para el lenguaje "máquina" o incluso para las capas inferiores físicos), pero debajo del lenguaje de la máquina está la configuración de las muchas compuertas y conmutadores utilizados para implementar cada opcode binario para el hardware (CPU) involucrado ... Un gran libro para leer que cubre este nivel aún más bajo es el de Charles Petzold, llamado "CODE"
Las primeras computadoras (ENIAC) usaron cableado duro para que la salida de un cómputo se pueda alimentar como entrada a otro. Para ejecutar otro programa, debe desconectar algunos cables y volver a conectarlos de manera diferente.
El ensamblador se traduce en código de máquina por el ensamblador. Podrías escribirlo con un editor binario. (¡Ay!) Las computadoras CISC pueden tener microcódigo, que secuencia los segmentos del chip (ALU, recuperación de memoria, etc.). Por lo general, nadie escribe microcódigo, excepto en el fabricante del chip.
Bueno, hay lenguaje de máquina, como han mencionado otros. 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.
Existen excepciones a esto, como el pseudo-instructions provisto por el lenguaje ensamblador MIPS.
Hay, o tal vez debería decir era un nivel por debajo incluso del lenguaje de ensamblaje/máquina: microcode. Los presupuestos modernos de transistores lógicos son lo que son, sospecho que el microcódigo está perdiendo relevancia.
Microcódigo definitivamente todavía está por aquí; es demasiado difícil y "no apto" para conectarlo todo. – Artelius
El lenguaje de ensamblaje es la planta más baja de la construcción del 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 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 de arquitectura disponible para la ejecución por los programas).
Creo que lo más bajo que puede 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.
Respuesta épica. Debería haber registrado marca TRW sin embargo. – NlightNFotis
Puede enviar corrientes eléctricas a la CPU y decirle dónde colocar los píxeles. (Bastante binario, pero no usa la computadora para escribirlo).
- 1. ¿Hay un lenguaje de programación con semántica cerca de inglés?
- 2. Siri lenguaje de programación
- 3. ¿Cómo crear un lenguaje de programación .Net?
- 4. ¿Hay algún otro lenguaje de programación para la programación del lado del cliente además de javascript?
- 5. ¿Hay algún lenguaje de scripting decente que use programación funcional?
- 6. ¿XSLT es un lenguaje de programación funcional?
- 7. Lenguaje de programación y compilador
- 8. ¿Qué es un lenguaje de programación formal?
- 9. ¿Qt 4 es un lenguaje de programación?
- 10. Windows: ¿Qué lenguaje de programación?
- 11. ¿Vale la pena investigar MPS (un lenguaje de meta-programación)?
- 12. GBA ROM Lenguaje de programación
- 13. Control de lenguaje de programación visual
- 14. Lenguaje de programación de proyectos Enterprise Architect
- 15. Lenguaje de programación de gráficos por computadora
- 16. ¿Hay un lenguaje de programación donde cada función se ejecuta esencialmente como un actor separado?
- 17. .NET Dependencias de la Asamblea
- 18. Lenguaje de script PHP o lenguaje de programación?
- 19. Mejores prácticas para escribir un analizador de lenguaje de programación
- 20. Beneficios y usos de un lenguaje de programación funcional
- 21. ¿Qué lenguaje de programación funcional debería elegir como primer lenguaje de programación funcional?
- 22. PHP como un lenguaje de programación de escritorio
- 23. Lenguaje de programación basado en Unicode
- 24. ¿Primeras impresiones del lenguaje de programación Fantom?
- 25. lenguaje de programación de scripting más rápido?
- 26. Lenguaje de programación más nuevo que Prolog para programación lógica
- 27. Detección del lenguaje de programación en PHP
- 28. Incrustar un lenguaje de programación en un programa
- 29. ¿Qué características de lenguaje se requieren en un lenguaje de programación para hacer un compilador?
- 30. .NET lenguaje para programación simultánea
http: //en.wikipedia.org/wiki/Computer_programming_in_the_punch_card_era – George
http://youtu.be/j9I2KfGKv4M es una buena conferencia sobre la diferencia entre Instruction Set Architecture y Micro Architecture – ams