Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Programación del microprocesador

El "vocabulario" de instrucciones que posee cualquier chip de microprocesador en particular es específico para ese modelo de chip. Un Intel 80386, por ejemplo, utiliza un conjunto de códigos binarios completamente diferente al de un Motorola 68020, para designar funciones equivalentes.

Desafortunadamente, no existen estándares para las instrucciones del microprocesador. Esto hace que la programación en el nivel más bajo sea muy confusa y especializada.

Cuando un programador humano desarrolla un conjunto de instrucciones para decirle directamente a un microprocesador cómo hacer algo (como controlar automáticamente la tasa de inyección de combustible a un motor), está programando en el propio "lenguaje" de la CPU. Este lenguaje, que consta de los mismos códigos binarios que la unidad de control dentro del chip de la CPU decodifica para realizar tareas, a menudo se denomina lenguaje de máquina .

Si bien el software en lenguaje de máquina se puede "redactar" en notación binaria, a menudo se escribe en forma hexadecimal, porque es más fácil para los seres humanos trabajar con él. Por ejemplo, presentaré solo algunos de los códigos de instrucciones comunes para el chip de microprocesador Intel 8080:

 Descripción de instrucción binaria hexadecimal ----------- -------- ------------------------------- ---------- | 7B 01111011 Mover el contenido del registro A al registro E | | 87 10000111 Agregar contenido del registro A al registro D | | 1C 00011100 Incrementar el contenido del registro E en 1 | | D3 11010011 Byte de salida de datos al bus de datos 

Incluso con la notación hexadecimal, estas instrucciones pueden confundirse y olvidarse fácilmente. Para ello, existe otra ayuda para programadores llamada lenguaje ensamblador .

Con el lenguaje ensamblador, se utilizan palabras mnemotécnicas de dos a cuatro letras en lugar del código hexadecimal o binario real para describir los pasos del programa. Por ejemplo, la instrucción 7B para Intel 8080 sería " MOV A, E ”En lenguaje ensamblador.

Los mnemónicos, por supuesto, son inútiles para el microprocesador, que solo puede entender códigos binarios, pero es una forma conveniente para que los programadores administren la escritura de sus programas en papel o en un editor de texto (procesador de texto). Incluso hay programas escritos para computadoras llamados ensambladores que entienden estos mnemónicos, traduciéndolos a los códigos binarios apropiados para un microprocesador de destino específico, de modo que el programador pueda escribir un programa en el idioma nativo de la computadora sin tener que lidiar con una extraña notación hexadecimal o tediosa de código binario.

Una vez que una persona desarrolla un programa, debe escribirse en la memoria antes de que un microprocesador pueda ejecutarlo. Si el programa se va a almacenar en ROM (que algunos lo están), esto se puede hacer con una máquina especial llamada programador de ROM , o (si eres masoquista), conectando el chip ROM en una placa de prueba, encendiéndolo con los voltajes apropiados y escribiendo datos haciendo las conexiones de cables correctas a la dirección y las líneas de datos, una a la vez, para cada instrucción.

Si el programa se va a almacenar en una memoria volátil, como la memoria RAM de la computadora operativa, puede haber una manera de escribirlo a mano a través del teclado de esa computadora (algunas computadoras tienen un mini-programa almacenado en la ROM que le dice al microprocesador cómo para aceptar pulsaciones de teclas desde un teclado y almacenarlas como comandos en la RAM), incluso si es demasiado tonto para hacer cualquier otra cosa.

Muchos equipos de computadora para "pasatiempos" funcionan así. Si la computadora que se va a programar es una computadora personal completamente funcional con un sistema operativo, unidades de disco y todo el trabajo, simplemente puede ordenar al ensamblador que almacene su programa terminado en un disco para su posterior recuperación.

Para "ejecutar" su programa, simplemente escriba el nombre de archivo de su programa en el indicador, presione la tecla Intro y el registro del contador de programa del microprocesador se establecerá para apuntar a la ubicación ("dirección") en el disco donde se encuentra la primera instrucción almacenado, y su programa se ejecutará desde allí.

Aunque la programación en lenguaje máquina o lenguaje ensamblador hace que los programas sean rápidos y altamente eficientes, se necesita mucho tiempo y habilidad para hacerlo para cualquier cosa que no sean las tareas más simples, porque cada instrucción en lenguaje máquina es muy burda. La respuesta a esto es desarrollar formas para que los programadores escriban en lenguajes de “alto nivel”, que puedan expresar de manera más eficiente el pensamiento humano. En lugar de escribir docenas de códigos en lenguaje ensamblador crípticos, un programador que escriba en un lenguaje de alto nivel podría escribir algo como esto. . .

 Imprimir "¡Hola, mundo!" 

. . . y espere que la computadora imprima "¡Hola, mundo!" sin más instrucciones sobre cómo hacerlo. Esta es una gran idea, pero ¿cómo entiende un microprocesador tal pensamiento “humano” cuando su vocabulario es tan limitado?

La respuesta viene en dos formas diferentes: interpretación o compilación . Al igual que dos personas que hablan diferentes idiomas, tiene que haber alguna forma de trascender la barrera del idioma para que puedan conversar.

Se necesita un traductor para traducir las palabras de cada persona al idioma de la otra persona, de una manera a la vez. Para el microprocesador, esto significa otro programa, escrito por otro programador en lenguaje de máquina, que reconoce los patrones de caracteres ASCII de comandos de alto nivel como Imprimir (Imprimir) y puede traducirlos en los pasos necesarios del tamaño de un bocado que el microprocesador puede directamente entender.

Si esta traducción se realiza durante la ejecución del programa, al igual que un traductor que interviene entre dos personas en una conversación en vivo, se denomina "interpretación". Por otro lado, si todo el programa se traduce al lenguaje de máquina de una sola vez, como un traductor que graba un monólogo en papel y luego traduce todas las palabras de una sola vez en un documento escrito en el otro idioma, el proceso se llama “ compilación ".

La interpretación es simple, pero lo convierte en un programa de ejecución lenta porque el microprocesador tiene que traducir continuamente el programa entre los pasos, y eso lleva tiempo. Inicialmente, la compilación lleva tiempo para traducir todo el programa a código de máquina, pero el código de máquina resultante no necesita traducción después de eso y, como consecuencia, se ejecuta más rápido.

Se interpretan lenguajes de programación como BASIC y FORTH. Se compilan lenguajes como C, C ++, FORTRAN y PASCAL. Los lenguajes compilados generalmente se consideran los lenguajes preferidos por los programadores profesionales, debido a la eficiencia del producto final.

Naturalmente, debido a que los vocabularios del lenguaje de máquina varían ampliamente de un microprocesador a otro, y dado que los lenguajes de alto nivel están diseñados para ser lo más universales posible, los programas de interpretación y compilación necesarios para la traducción de idiomas deben ser específicos del microprocesador.

El desarrollo de estos intérpretes y compiladores es una hazaña impresionante:las personas que hacen estos programas definitivamente se ganan la vida, especialmente cuando se considera el trabajo que deben hacer para mantener su producto de software actualizado con los modelos de microprocesadores que cambian rápidamente que aparecen en el mercado. !

Para mitigar esta dificultad, los fabricantes de chips de microprocesador que marcan tendencia (más notablemente, Intel y Motorola) intentan diseñar sus nuevos productos para que sean compatibles con versiones anteriores con sus productos más antiguos. Por ejemplo, todo el conjunto de instrucciones para el chip Intel 80386 está contenido en los últimos chips Pentium IV, aunque los chips Pentium tienen instrucciones adicionales de las que carecen los chips 80386.

Lo que esto significa es que los programas en lenguaje de máquina (también compiladores) escritos para computadoras 80386 se ejecutarán en la última y mejor CPU Intel Pentium IV, pero los programas en lenguaje de máquina escritos específicamente para aprovechar el conjunto de instrucciones más grande del Pentium no se ejecutarán en un 80386, porque la CPU más antigua simplemente no tiene algunas de esas instrucciones en su vocabulario:la unidad de control dentro del 80386 no puede decodificarlas.

Sobre la base de este tema, la mayoría de los compiladores tienen configuraciones que permiten al programador seleccionar para qué tipo de CPU desea compilar el código en lenguaje de máquina. Si seleccionan la configuración 80386, el compilador realizará la traducción utilizando solo las instrucciones conocidas por el chip 80386; si seleccionan la configuración de Pentium, el compilador es libre de hacer uso de todas las instrucciones conocidas por los Pentiums.

Esto es análogo a decirle a un traductor cuál será el nivel mínimo de lectura de su audiencia:un documento traducido para un niño será comprensible para un adulto, pero un documento traducido para un adulto puede muy bien ser un galimatías para un niño.

HOJA DE TRABAJO RELACIONADA:


Tecnología Industrial

  1. Los 10 lenguajes de programación en la nube más geniales
  2. Operadores de programación en C
  3. Lenguaje de programación C PDF:tutorial básico para principiantes
  4. Bosque:Nuevo lenguaje de programación de Microsoft sin bucles
  5. 9 nuevos lenguajes de programación para aprender en 2021
  6. Tutorial C
  7. Lenguaje C - Descripción general
  8. C - Estructura del programa
  9. C#:descripción general
  10. Heidenhain lanza el programa de formación CNC en línea
  11. Complete el ejercicio de fresado de programación CNC en blanco