¿Qué es el lenguaje ensamblador?
¿Qué es ensamblador y lenguaje ensamblador?
El lenguaje ensamblador es un lenguaje de programación informática de bajo nivel. "Bajo nivel" no se refiere a la función y complejidad del lenguaje, sino que apareció en la historia temprana del desarrollo informático, pero lo es. Todavía se utiliza ampliamente en el campo del desarrollo informático, porque es la base de la mayoría de los lenguajes. Además, es un lenguaje orientado a la máquina, es decir, su funcionamiento y funcionamiento están estrechamente relacionados con el hardware de la computadora.
C. El lenguaje es un lenguaje de alto nivel, que es propicio para la operación humana y está cerca de la brecha entre orientado a objetos y orientado a máquinas (VB es un lenguaje de programación orientado a objetos. Sus funciones son más potentes y altamente portátiles). es uno de los lenguajes más utilizados en la actualidad.
El ensamblador de DOS significa que la interfaz operativa del lenguaje ensamblador es el sistema DOST, lo que también significa que el ensamblador es de nivel inferior, pero su ejecución no tiene comparación con otros. lenguajes, lo que significa que su portabilidad es pobre. p>
¿Qué es el lenguaje ensamblador?
El desarrollo de los lenguajes de programación de computadoras ha pasado por el proceso desde el lenguaje de máquina, el lenguaje ensamblador hasta el de alto nivel. idioma.
1. Lenguaje 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 solo podía usar el lenguaje informático para ordenarle a la computadora que hiciera esto o aquello. En una palabra, significa escribir una serie de secuencias de instrucciones compuestas por "0" y "1" para que la computadora las realice. ejecutar. , este lenguaje es lenguaje de máquina. Usar lenguaje de máquina es muy doloroso, especialmente cuando el programa tiene errores y necesita ser modificado. Además, dado que el sistema de instrucciones de cada computadora suele ser diferente, si un programa ejecutado en una computadora va a ejecutarse en otra computadora, se debe programar otro programa, lo que resulta en una duplicación del trabajo. Sin embargo, debido a que utiliza un lenguaje específico para un modelo específico de computadora, su eficiencia computacional es la más alta entre todos los lenguajes. 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 una mejora útil: utilizar algunas letras inglesas concisas y cadenas de símbolos para reemplazar un código específico. cadena binaria de instrucciones, por ejemplo, use "A D D" para representar la suma, "MO V" para representar la transferencia de datos, etc. De esta manera, es fácil para las personas leer y comprender lo que está haciendo el programa, y corregir errores y El mantenimiento se vuelve conveniente. Este tipo de lenguaje de programación se llama lenguaje ensamblador, que es el lenguaje informático de segunda generación. Sin embargo, la computadora no reconoce estos símbolos, lo que requiere de un programa especial que se encarga de traducir estos símbolos al lenguaje de máquina de números binarios. 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 compilados para hardware de computadora específico pueden utilizar con precisión las funciones y especialidades del hardware de la computadora, y los programas son. refinado y la calidad es alta, por lo que sigue siendo una herramienta de desarrollo de software potente y de uso común.
3. Lenguaje de alto nivel
Desde la dolorosa experiencia inicial de comunicarse con las computadoras, la gente se dio cuenta de que se debía diseñar un lenguaje que se acercara al lenguaje matemático o al lenguaje humano. lenguaje natural y no depende del hardware de la computadora. Los programas compilados se pueden usar universalmente en todas las máquinas. Después de un arduo trabajo, en 1954, apareció el primer lenguaje de alto nivel completamente separado del hardware de la máquina: FORTRAN. En los últimos 40 años, han aparecido cientos de lenguajes de alto nivel, y hay docenas de lenguajes importantes. , aquellos con mayor influencia y uso común incluyen 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 a l, C, P R O L O G, A d a, C + +, V C, V B, D e l p h i, J. AVA et al.
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 inicial cerrada 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. Sin embargo, la producción de software la realizaban básicamente las propias personas. y estándares estandarizados de planificación, prueba y evaluación de sistemas. La consecuencia negativa es que una gran cantidad de sistemas de software construidos con un costo enorme no se pueden utilizar debido a errores e incluso causan enormes pérdidas. Casi no existe software libre de errores. Todo esto ha conmocionado enormemente a la industria informática y se conoce como la "crisis del software" de la historia. La gente se da cuenta de que preparar programas grandes es 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 de manera que se pueda garantizar y verificar fácilmente la corrección. En 1969, se propuso el método de programación estructurada. En 1970, apareció el primer lenguaje de programación estructurado: el lenguaje Pascal, lo que marcó el comienzo del período de programación estructurada.
A principios de la década de 1980, se produjo otra revolución en el pensamiento de diseño de software y el resultado fue la programación orientada a objetos. Antes de esto, casi todos los lenguajes de alto nivel estaban orientados a procesos y la ejecución del programa era similar a una canalización. Antes de ejecutar un módulo, las personas no podían hacer nada más ni cambiar dinámicamente la dirección de ejecución. el programa. Esto es diferente de cómo la gente maneja las cosas todos los días... >>
¿Qué significa @ en lenguaje ensamblador?
# significa direccionamiento inmediato. Para obtener instrucciones sobre el modo de direccionamiento inmediato, agregue el carácter de direccionamiento inmediato "#" delante del número inmediato.
Por ejemplo, en la instrucción MOV A, 30H en #30H es el número inmediato, y la función de la instrucción es asignar 30H al acumulador A.
@ representa el direccionamiento indirecto de registros.
Por ejemplo, la instrucción MOV A, @R0 utiliza el modo de direccionamiento indirecto de registro. El significado de esta instrucción es enviar los datos de la unidad de memoria de datos interna señalada por el puntero de dirección R0 al acumulador. A. Suponiendo que el contenido en R0 es 30H, la función de esta instrucción es utilizar el contenido 30H en el registro R0 como dirección para transferir el contenido en la unidad RAM interna 30H al acumulador A.
¿Qué es el lenguaje ensamblador?
El lenguaje ensamblador es un lenguaje informático. En términos sencillos, el lenguaje informático es un puente entre los humanos y las computadoras (las CPU no entienden el lenguaje humano). No lo entendemos ni lo leemos. Si queremos que las computadoras completen nuestro trabajo por nosotros, necesitamos traducir las tareas que deben completar las computadoras al lenguaje informático. El lenguaje ensamblador es uno de varios lenguajes. Es un lenguaje informático de bajo nivel. Esto se compara con el lenguaje C orientado a procesos y el C++ y Java orientados a objetos. 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 ejecución de los lenguajes de alto nivel. Debido a que el lenguaje ensamblador es un lenguaje de bajo nivel, definitivamente no es fácil de entender para los usuarios comunes, ya que es de bajo nivel. Esto requiere ciertos conocimientos básicos de hardware y algunos conocimientos de los principios de funcionamiento de la computadora. Había aprendido lenguaje ensamblador en la universidad antes, pero no lo tomé en serio. Incluso mis tareas las hacía copiando y pegando (hay muchos como este :)). Sólo después de empezar a trabajar descubrí que este idioma es algo bueno. En realidad, es un curso básico muy importante. Ahora que tengo tiempo, abriré el libro, leeré más y aprenderé 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 qué tipo de lenguaje ensamblador, los programas compilados por él son software, por lo que no importa qué tipo de software, debe depender de la plataforma básica del sistema operativo antes de que pueda ser ejecutado por la CPU del hardware. Debido a que el sistema operativo proporciona la conexión entre el hardware y la interfaz de usuario, todo el software debe asignarse a recursos de hardware a través de él (no sé si esto es correcto :) antes de que pueda ejecutarse). Generalmente, primero aprende el ensamblaje de DOS de 16 bits y luego aprende el ensamblaje de Windows de 32 bits. Así que hablemos primero del ensamblaje de DOS de 16 bits.
Para aprender el lenguaje ensamblador, primero debe comprender la CPU. Solo comprendiendo la CPU se puede comprender la ejecución del lenguaje ensamblador, porque básicamente opera directamente los diversos componentes de la CPU (como los registros). Encontré este diagrama en ***, de la siguiente manera: El diagrama de estructura lógica de la CPU anterior es el de 8088. Las arquitecturas de 8088 y 8086 son similares, así que usaré esto como ejemplo para presentar las funciones de cada componente. Registro principal: registro de acumulación AX (AH, AL), generalmente utilizado para el almacenamiento temporal de datos; registro de dirección base BX (BH, BL), generalmente utilizado para el almacenamiento de direcciones de desplazamiento CX (CH, CL), generalmente utilizado en 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; Estos dos se utilizan como extensiones BX para el almacenamiento de direcciones compensadas. Registro de segmento: CS: registro de segmento de código. Cualquier programa comienza la ejecución desde el segmento de código. El registro CS especifica 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 de memoria especial en la memoria. El montón es diferente de la pila. En la actualidad, solo sé que la pila se usa de acuerdo con el principio de "primero en entrar, último en salir, último en entrar". , primero en salir". ES: Registro de segmento adicional, que debería ser una expansión del registro de segmento de datos DS. Sumador de direcciones: se utiliza al direccionar la memoria. Genera la dirección física procesando la dirección del segmento en el registro del segmento y la dirección de desplazamiento en los registros BX, SI, DI y otros, y luego se puede acceder a la unidad de memoria. 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 para analizar el direccionamiento de la CPU, la dirección lógica y la dirección física. Unidad de operación lógica y unidad de control: Esta es la unidad central de la CPU. Por ahora solo recordamos que son las responsables de la ejecución y el control. Datos internos, bus de direcciones: el canal de comunicación entre varios componentes dentro de la CPU. Bus de direcciones externo: se utiliza para transmitir la dirección física de la unidad de memoria que la CPU quiere leer/escribir. Su ancho determina la capacidad máxima de memoria a la que puede acceder la CPU. Datos externos y control...>>
¿Qué significa * en lenguaje ensamblador?
Representa el contenido de la memoria en la dirección 0x804a260
Consulte el blog. csdn/...314473
¿Cuáles son las pseudoinstrucciones del lenguaje ensamblador?
Una comprensión simple son aquellas instrucciones ensambladoras en lenguaje ensamblador que no tienen instrucciones de máquina correspondientes.
El programa que se ejecuta directamente en la computadora corresponde a un lenguaje de máquina (de instrucciones). Si se expresa directamente en binario, es una serie de 0 y 1. Por supuesto, en la era de escribir programas en lenguaje de máquina, generalmente se usaban octal o hexadecimal. Tienen una relación de 3 bits a 1 bit o de 4 bits a 1 bit con el binario, simplificando así la expresión del programa en lenguaje de máquina. códigos en papel (o en la representación en pantalla). Aun así, este tipo de programa todavía era demasiado desalentador, por lo que se inventó el lenguaje "ensamblador", lo que significó reemplazar las instrucciones de la máquina con símbolos que fueran más fáciles de entender para los humanos. Supongamos que la secuencia lógica de una instrucción de suma se puede expresar como 0110...1011 en binario, como 3...3 en octal y como 6...B en hexadecimal. El lenguaje ensamblador utiliza la forma ADD x,y para representar una instrucción de máquina, es decir, cada instrucción de máquina se reemplaza por una "instrucción ensambladora" correspondiente. El sistema de instrucción resultante se denomina "lenguaje ensamblador" y se utilizará el lenguaje ensamblador. El proceso de traducir el programa escrito al lenguaje de máquina se denomina proceso de "ensamblaje". Las instrucciones ensambladoras agregadas para aumentar la legibilidad del lenguaje ensamblador y ayudar al programa de traducción a traducir el programa fuente ensamblador son "pseudoinstrucciones".
¿Cuáles son las características del lenguaje ensamblador?
Las características generales del lenguaje ensamblador 1. Dependencias 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 en particular. 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 y hacer un mejor uso de las características de la máquina, lo que da como resultado programas de mayor 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, memoria, CPU, puerto de E/S, etc. ., ocupa menos memoria y tiene una velocidad de ejecución rápida. Es un lenguaje de programación eficiente.
3. Complejidad de escritura y depuración
Dado que el hardware se controla directamente y las tareas simples también requieren muchas declaraciones en lenguaje ensamblador, la programación debe ser integral, se deben considerar todos los problemas posibles y se debe realizar una implementación y uso razonables. recursos de hardware. De esta forma, inevitablemente aumenta la carga para los programadores. De manera similar, al depurar un programa, una vez que hay un problema con la ejecución del programa, es difícil encontrarlo.
Ventajas
1. Debido a 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, simple y puede procesarse simplemente como instrucciones de la máquina. Acceder y controlar varios dispositivos de hardware de la computadora, como discos, memoria, CPU, puertos de E/S, etc. Usando lenguaje ensamblador, 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 y, a menudo, se usa junto con lenguajes de alto nivel para mejorar la velocidad de ejecución. y la eficiencia del programa y compensa las desventajas de los lenguajes de alto nivel en el control de hardware. En algunos aspectos, la aplicación es muy amplia.
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 para un propósito específico. Computadora o serie. Las computadoras están especialmente diseñadas. Diferentes procesadores tienen diferentes sintaxis y compiladores de lenguaje ensamblador, y el programa compilado no se puede ejecutar en diferentes procesadores, lo que carece de portabilidad;
2. Es difícil entender la intención de la programación a partir del código en lenguaje ensamblador, mala capacidad de mantenimiento, incluso para completar tareas simples se requiere una gran cantidad de código en lenguaje ensamblador, que es fácil de producir errores y difícil de depurar
3. Para usar el lenguaje ensamblador, debe tener un buen conocimiento de un determinado procesador; y solo se puede optimizar para arquitecturas y procesadores específicos, pero 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 mnemónicos (Memoni) para reemplazar códigos de operación y use símbolos de dirección (Símbolo) o etiquetas (Etiqueta) para reemplazar códigos de dirección. De esta manera, el uso de símbolos para reemplazar el código binario del lenguaje de máquina convierte el lenguaje de máquina en lenguaje ensamblador. Por lo tanto, el lenguaje ensamblador también se llama lenguaje simbólico. Los programas escritos en lenguaje ensamblador no pueden ser reconocidos directamente por las máquinas. Se requiere un programa para traducir el lenguaje ensamblador al lenguaje de máquina. Este programa de traducción se llama ensamblador y es un software de sistema de procesamiento de lenguaje en el software del sistema. El proceso de traducción del lenguaje ensamblador al lenguaje de máquina por parte del ensamblador se llama ensamblador.
Habla avanzada:
Dado que el lenguaje ensamblador depende del sistema 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áciles de recordar. para usar. En este idioma, su sintaxis y estructura son más similares al 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 sus tipos básicos, generaciones, métodos de implementación, alcance de aplicación, etc.
¿Qué significa # en lenguaje ensamblador, como MOV A, #21H?
Jaja, déjame ayudarte a responder:
En lenguaje ensamblador, # es el prefijo para números inmediatos
Por ejemplo: MOV A, #21H
#21H significa que 21H es un número inmediato. Esta instrucción transfiere el número inmediato 21H al acumulador A.
p>
¿Cuál es la instrucción GE en lenguaje ensamblador?
Mayor o igual a