¿Qué es el lenguaje ensamblador?

¿Qué es el ensamblador y el lenguaje ensamblador?

El lenguaje ensamblador es un lenguaje de programación informática de bajo nivel. Cuando digo "bajo nivel", no me refiero a la funcionalidad y complejidad del lenguaje, sino que apareció en los primeros días del desarrollo informático, pero todavía se usa ampliamente en el campo del desarrollo informático porque es la base de la mayoría de los idiomas. Además, es un lenguaje orientado a máquina, es decir, sus cálculos y operaciones están estrechamente relacionados con el hardware de la computadora.

El lenguaje C es un lenguaje de alto nivel que favorece la operación humana, cercano a la orientación a objetos y a la máquina (VB es un lenguaje de programación orientado a objetos), más potente y altamente portátil, y es la aplicación más popular hoy en día. Uno de los lenguajes más extendidos.

Ensamblador de DOS significa que la interfaz operativa del lenguaje ensamblador es el sistema DOST, lo que significa que el ensamblador es de nivel inferior, pero el nivel de ejecución no tiene comparación con otros lenguajes, lo que significa que la portabilidad es pobre.

¿Qué es el lenguaje ensamblador?

El desarrollo de los lenguajes de programación informática ha pasado por el proceso desde el lenguaje de máquina, el lenguaje ensamblador hasta el lenguaje de alto nivel.

1Lenguaje de máquina

Las computadoras electrónicas utilizan números binarios compuestos por "0" y "1". El binario es la base del lenguaje informático. Al comienzo de la invención de las computadoras, la gente sólo podía usar el lenguaje informático para ordenar a las computadoras que hicieran esto y aquello. En una palabra, significa escribir una serie de secuencias de instrucciones compuestas por "0" y "1" y entregárselas a la computadora para su ejecución. Este lenguaje es lenguaje de máquina. Usar lenguaje de máquina es muy doloroso, especialmente cuando el programa comete errores y necesita ser modificado. Además, dado que el sistema de instrucciones de cada computadora suele ser diferente, un programa ejecutado en una computadora debe compilarse por separado si se va a ejecutar en otra computadora, lo que resulta en una duplicación del trabajo. Sin embargo, debido a que el idioma se usa en un tipo específico de computadora, se ejecuta de manera más eficiente que cualquier idioma. El lenguaje de máquina es la primera generación de lenguaje informático.

2. Lenguaje ensamblador

Para reducir el dolor de la programación en lenguaje de máquina, la gente ha realizado mejoras útiles: utilizando algunas letras inglesas concisas y cadenas de símbolos para reemplazar el binario de un Cadena de instrucción específica, por ejemplo, "A D D" representa la suma, "MO V" representa la transmisión de datos, etc. De esta manera, las personas pueden leer y comprender fácilmente lo que está haciendo el programa y facilita la corrección de errores y el mantenimiento. Este lenguaje de programación se llama lenguaje ensamblador de segunda generación. Pero la computadora no comprende estos símbolos, por lo que se necesita un programa especial para traducir estos símbolos al lenguaje de máquina binario. Este programa de traducción se llama ensamblador.

El lenguaje ensamblador también depende en gran medida del hardware de la máquina y tiene poca portabilidad, pero sigue siendo muy eficiente. Los programas en lenguaje ensamblador escritos para hardware específico de computadora pueden utilizar con precisión las funciones y especialidades del hardware de computadora. Los programas son refinados y de alta calidad, por lo que sigue siendo una herramienta de desarrollo de software universal y poderosa.

3. Lenguaje de alto nivel

Desde la dolorosa experiencia inicial de comunicarse con las computadoras, la gente se dio cuenta de que debíamos diseñar un lenguaje que se acercara al lenguaje matemático o al lenguaje natural humano, al mismo tiempo que No depender del hardware de la computadora y los programas programados se pueden usar universalmente en todas las máquinas. Después de un arduo trabajo, en 1954 apareció el primer lenguaje de alto nivel FORTRAN que era completamente independiente del hardware de la máquina. En los últimos 40 años han surgido cientos de lenguajes de alto nivel, decenas de los cuales son de gran importancia. Los más influyentes y utilizados son F O RT R A N, A L G O L, C O B O L, B A S I C, L I S P, S N O B O L, P L/1, P A S C L, C, P R O L O G, A d a, C++, V C, V B y D E L.

El desarrollo de lenguajes de alto nivel también ha pasado por el proceso desde los primeros lenguajes hasta los lenguajes de programación estructurados, y desde los lenguajes de programación orientados a procesos hasta los no procedimentales. En consecuencia, el desarrollo de software también ha evolucionado desde la producción cerrada inicial en talleres manuales individuales hasta la producción industrializada en línea de montaje.

A mediados y finales de la década de 1960, había cada vez más software y la escala era cada vez mayor. La producción de software es básicamente una lucha humana, que carece de estándares científicos y estandarizados para la planificación, prueba y evaluación del sistema. Como resultado, una gran cantidad de sistemas de software creados con un costo enorme no se pueden utilizar debido a errores e incluso causan enormes pérdidas. El software parece cada vez menos confiable, hasta el punto de que casi no hay software de válvulas que esté libre de errores. Todo esto sacudió enormemente a la industria informática y en la historia se le llamó la "crisis del software".

La gente se dio cuenta de que compilar programas grandes era diferente a escribir programas pequeños. Debería ser una tecnología nueva y todo el proceso de desarrollo de software debería manejarse como ingeniería. Los programas deben diseñarse para que sea fácil garantizar y verificar la corrección. 1969 propuso el método de programación estructurada. En 1970 apareció el primer lenguaje de programación estructurado, el lenguaje PASCAL, que marcó el comienzo del período de programación estructurada.

Desde principios de la década de 1980, ha habido otra revolución en el pensamiento de diseño de software, cuyo resultado es la programación orientada a objetos. Antes de esto, los lenguajes de alto nivel casi siempre estaban orientados a procesos y la ejecución de programas era como una línea de ensamblaje. Antes de ejecutar un módulo, no se puede hacer nada más, ni se puede cambiar dinámicamente la dirección de ejecución del programa. Esto está relacionado con el trato diario de las personas con las cosas> & gt

¿Qué significa @ en lenguaje ensamblador?

# significa direccionamiento numérico inmediato. Para instrucciones en modo de direccionamiento inmediato, el carácter de dirección inmediata "#" se agrega antes de los datos inmediatos.

Por ejemplo, en la instrucción MOV A en #30H, 30H es un número inmediato. La función de esta instrucción es asignar 30H al acumulador A.

@ representa el. búsqueda indirecta del sitio de registro.

Por ejemplo, la instrucción MOV A, @R0 utiliza direccionamiento indirecto de registro. El significado de esta instrucción es enviar los datos en la unidad de almacenamiento de datos interna apuntada por el puntero de dirección R0 al acumulador A. Supongamos que. que el contenido es 30H. La función de esta instrucción es transferir el contenido de la unidad RAM interna 30H al acumulador A utilizando el contenido del registro R0 como dirección.

¿Qué es el lenguaje ensamblador?

El lenguaje ensamblador es un lenguaje informático. En términos generales, los lenguajes informáticos son el puente entre los humanos y las computadoras (CPU). Las computadoras no entienden el lenguaje humano, ni lo entienden ni lo comprenden. Para que las computadoras funcionen para nosotros, necesitamos traducir las tareas que se les asignan al lenguaje informático. El lenguaje ensamblador es uno de varios lenguajes y es un lenguaje informático de bajo nivel, en comparación con el lenguaje C orientado a procesos, C++ orientado a objetos y Java. Es el lenguaje informático más cercano al hardware distinto del lenguaje de máquina. Al aprender el lenguaje ensamblador, puede comprender profundamente el mecanismo operativo subyacente del sistema operativo y pensar en los problemas desde la perspectiva de la CPU. Esto le permite evitar muchos errores al escribir programas en lenguajes de alto nivel y obtener una comprensión más profunda de los principios de implementación de los lenguajes de alto nivel. Debido a que el lenguaje ensamblador es un lenguaje de bajo nivel, debido a que es de bajo nivel, ciertamente no es fácil de reconocer por parte de los usuarios comunes. Esto requiere algunos conocimientos básicos de hardware y algunos conocimientos de los principios de funcionamiento de las computadoras. Ya había aprendido lenguaje ensamblador en la universidad, pero no lo tomé en serio. Incluso mi tarea ha sido copiada y pegada (hay muchos casos de este tipo :). Después de trabajar, descubrí que este idioma es algo bueno. De hecho, es un curso básico muy importante. Así que ahora, si tienes tiempo, abre tu libro, lee más y aprende más. Actualmente existen dos lenguajes ensambladores comunes: uno es el lenguaje ensamblador de 16 bits en DOS basado en la arquitectura 8086/88, y el otro es el lenguaje ensamblador de 32 bits en Windows basado en la arquitectura 80386 y modelos posteriores. No sé si existe un lenguaje ensamblador en Linux. Por cierto, no importa en qué lenguaje ensamblador esté escrito el programa, pertenece al software, por lo que no importa qué software deba depender de la plataforma básica del sistema operativo, puede ser ejecutado por la CPU del hardware, porque el sistema operativo proporciona la interfaz entre el hardware y el usuario. Todo el software debe asignarse a los recursos de hardware a través de él. Generalmente, primero debe aprender a ensamblar DOS de 16 bits y luego aprender a ensamblar Windows de 32 bits. Así que hablemos primero del ensamblaje de DOS de 16 bits. Para aprender lenguaje ensamblador, primero debes entender la CPU. Sólo comprendiendo la CPU se puede comprender la ejecución del lenguaje ensamblador, porque básicamente opera directamente varios componentes de la CPU (como registros). Encontré esta imagen en ***, de la siguiente manera: El diagrama de estructura lógica de la CPU anterior es 8088. La arquitectura de 8088 es similar a la de 8086. Usaré esto como ejemplo para presentar las funciones de cada componente. Registro principal: registro de acumulación AX (AH, AL), generalmente utilizado para almacenar datos temporalmente, registro de dirección base BX (BH, BL), generalmente utilizado para almacenar direcciones de desplazamiento, registro de conteo CX (CH, CL), generalmente utilizado para control de bucles; veces el registro de datos DX (DH, DL), que parece ser similar al registro de puntero de pila SP, el registro de puntero de dirección base BP, que se puede utilizar como registro de índice de origen SI y registro de índice de destino DI; Se utiliza como extensión BX para el almacenamiento de direcciones compensadas.

Registro de segmento: CS: registro de segmento de código. Cualquier programa comienza a ejecutarse desde el segmento de código. El registro CS representa la dirección del segmento de código. DS: registro de segmento de datos, que almacena la dirección del segmento de la parte de datos del programa. SS: registro de segmento de pila. La pila es un bloque especial de memoria en la memoria. Una pila es diferente de una pila. En la actualidad, solo sabemos que la pila se utiliza según el principio de "primero en entrar, primero en salir". ES: Registro de segmento adicional, que debería ser una extensión del registro de segmento de datos DS. Sumador de direcciones: se utiliza para direccionar la memoria. Procesa la dirección del segmento en el registro de segmento con la dirección de desplazamiento en los registros BX, SI, DI y otros para generar la dirección física, y luego se puede acceder a la unidad de almacenamiento. La dirección en el ensamblador es solo una dirección lógica, no una dirección real en la memoria. Cuando el programa se está ejecutando realmente, cada vez que se accede a la memoria, la dirección lógica se convierte en una dirección física antes de que se pueda acceder a la memoria física. También escribiré otro artículo sobre direccionamiento de CPU, dirección lógica y dirección física. Unidad de operación lógica y unidad de control: Esta es la unidad central de la CPU solo debemos recordar que son las responsables de la ejecución y el control. Datos internos, bus de direcciones: canal de comunicación entre componentes de la CPU. Bus de direcciones externo: se utiliza para transmitir la dirección física de la unidad de memoria para que la CPU la lea y escriba. Su ancho determina la cantidad máxima de memoria a la que puede acceder la CPU. Datos externos y control total>>

¿Qué significa * en lenguaje ensamblador?

Representa el contenido de la memoria en la dirección 0x804a260.

Consulte blog.csdn/...314473

¿Cuáles son las pseudoinstrucciones del lenguaje ensamblador?

Una comprensión simple es que no existen instrucciones ensambladoras correspondientes a instrucciones de máquina en lenguaje ensamblador.

Un programa que se ejecuta directamente en una computadora se llama lenguaje de máquina (de instrucciones). Si se expresa directamente en binario, es una cadena de 0 y 1. Por supuesto, en la era de la programación en lenguaje de máquina se utilizaba generalmente el octal o el hexadecimal. Su relación con el binario es de 3 bits a 1 o de 4 bits a 1, simplificando así la traducción de códigos de programas en lenguaje de máquina en texto (o en pantalla). expresar. Aun así, este programa era demasiado desalentador, por lo que se inventó el lenguaje "ensamblador", que reemplazó las instrucciones de la máquina con símbolos que eran fáciles de entender para los humanos. Supongamos que la secuencia lógica de instrucciones de suma se puede expresar como 06...B5438+010...1011 en binario, 3...3 en octal y 6...b en hexadecimal. El lenguaje ensamblador usa ADD x, y El formulario representa una instrucción de máquina, es decir, cada instrucción de máquina se reemplaza por una "instrucción de ensamblador" correspondiente para formar un sistema de instrucciones, llamado "lenguaje ensamblador". El proceso de traducir un programa escrito en lenguaje ensamblador a lenguaje de máquina se llama. "proceso de montaje". Para mejorar la legibilidad del lenguaje ensamblador y ayudar a los traductores a traducir programas fuente en ensamblador, las instrucciones en ensamblador agregadas son "pseudoinstrucciones".

¿Cuáles son las características del lenguaje ensamblador?

Características generales del lenguaje ensamblador 1. Dependencia de la máquina

Este es un lenguaje de bajo nivel orientado a la máquina, generalmente diseñado para una computadora o familia de computadoras específica. Debido a que es una representación simbólica de instrucciones de máquina, diferentes máquinas tienen diferentes lenguajes ensambladores. El uso del lenguaje ensamblador puede estar orientado a la máquina, aprovechar al máximo las características de la máquina y obtener programas de alta calidad.

2. Alta velocidad y eficiencia

El lenguaje ensamblador mantiene las ventajas del lenguaje de máquina, es directo y simple y puede acceder y controlar de manera efectiva varios dispositivos de hardware de computadora, como discos y memorias, CPU, puertos de E/S, etc. , ocupa menos memoria y es un lenguaje de programación eficiente.

3. Complejidad de escritura y depuración

Dado que el hardware se controla directamente, las tareas simples también requieren una gran cantidad de declaraciones en lenguaje ensamblador, por lo que se deben considerar todas las situaciones posibles al programar. . Problemas, asignación racional y uso de diversos recursos de software y hardware. Esto inevitablemente aumentará la carga para los programadores. De manera similar, al depurar un programa, es difícil encontrar si hay algún problema con el funcionamiento del programa.

Ventajas

1. Dado que el programa diseñado en lenguaje ensamblador eventualmente se convierte en instrucciones de máquina, puede mantener la consistencia del lenguaje de máquina, es directo y simple, y se puede acceder y controlados como instrucciones de máquina Varios dispositivos de hardware de computadora, como discos, memoria, CPU, puertos de E/S, etc. Utilizando lenguaje ensamblador, se puede acceder a todos los recursos de software y hardware accesibles.

2. El código de destino es corto, ocupa menos memoria y tiene una velocidad de ejecución rápida.

Es un lenguaje de programación eficiente que a menudo se usa junto con lenguajes de alto nivel para mejorar la velocidad y eficiencia de ejecución del programa y compensar las deficiencias de los lenguajes de alto nivel en el control de hardware. Es ampliamente utilizado.

Desventajas

1. El lenguaje ensamblador está orientado a la máquina y se encuentra en la parte inferior de toda la jerarquía de lenguajes informáticos, por lo que se considera un lenguaje de bajo nivel, generalmente diseñado para un computadora específica o serie de diseños de computadora. Diferentes procesadores tienen diferentes sintaxis de lenguaje ensamblador y compiladores, y el programa compilado no se puede ejecutar en diferentes procesadores, por lo que carece de portabilidad.

2. Es difícil comprender la intención de diseño del programa a partir del código en lenguaje ensamblador y la capacidad de mantenimiento es deficiente. Incluso el trabajo simple requiere una gran cantidad de código en lenguaje ensamblador, que es propenso a errores y difícil de depurar

3. Para usar el lenguaje ensamblador, debes conocer muy bien un determinado procesador, y solo puede serlo; Se utiliza para arquitecturas específicas y el procesador está optimizado, por lo que la eficiencia de desarrollo es muy baja y el ciclo es largo y monótono.

¿Cuál es la diferencia entre lenguaje ensamblador y lenguaje de alto nivel?

El lenguaje ensamblador es un lenguaje de programación orientado a máquina. En lenguaje ensamblador, use Memoni para reemplazar códigos de operación y use símbolos o etiquetas de dirección para reemplazar códigos de dirección. De esta forma, el código binario del lenguaje de máquina es reemplazado por símbolos y el lenguaje de máquina se convierte en lenguaje ensamblador. Por lo tanto, el lenguaje ensamblador también se llama lenguaje simbólico. La máquina no puede reconocer directamente los programas escritos en lenguaje ensamblador. Se necesita un programa para traducir el lenguaje ensamblador al lenguaje de máquina. Este programa de traducción se llama ensamblador y es el software del sistema de procesamiento del lenguaje en el software del sistema. Ensamblador El proceso de traducir el lenguaje ensamblador al lenguaje de máquina se llama ensamblador.

Discurso de alto nivel:

Debido a que el lenguaje ensamblador se basa en sistemas de hardware y los mnemotécnicos son grandes y difíciles de recordar, la gente ha inventado los llamados lenguajes de alto nivel que son más fácil de usar. En este idioma, su sintaxis y estructura son más similares a las del inglés común y, debido a que está lejos de la operación directa del hardware, la gente común puede programar después de aprender. Los lenguajes de alto nivel generalmente se clasifican según su tipo básico, generación, método de implementación y alcance de aplicación.

¿Qué significa # en lenguaje ensamblador, como MOV A, #21H?

Jaja, déjame responderte:

# es el prefijo para números inmediatos en lenguaje ensamblador.

Por ejemplo: A, Fu #21H

#21H significa que 21H es un número inmediato. Esta instrucción transfiere el valor inmediato 21H al acumulador a.

¿Cuál es la instrucción del lenguaje ensamblador ge?

Mayor o igual