martes, 23 de marzo de 2010

Lenguaje ensamblador






1. ¿Que es lenguaje ensamblador?
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.









2. ¿Para que te sirve el lenguaje ensamblador?
Los ensambladores permiten que los programas origen se escriban y se editen en una computadora para generar un código ejecutable en otra computadora. El archivo en lenguaje objeto ejecutable resultante se carga y se ejecuta en el sistema destino.











3. ¿Menciona al menos dos ejemplos de donde se puede aplicar el lenguaje ensamblador?



Ejemplo 1

Código en lenguaje ensamblador para µC Intel 80C51:

 
 ORG 8030H
 
 T05SEG:                     
  SETB TR0
  JNB uSEG, T05SEG       ; esta subrutina es utilizada     
  CLR TR0               ; para realizar una cuenta de 
  CPL uSEG              ; 0,5 segundos mediante la     
  MOV R1,DPL            ;interrupción del timer 0.     
  MOV R2,DPH                 
  CJNE R2,#07H,T05SEG        
  CJNE R1,#78H,T05SEG        
  MOV DPTR,#0000H
  RET

Ejemplo 2

Código en lenguaje ensamblador para µC 16F84 de Microchip:

  ORG   0
 Inicio
        bsf     STATUS,RP0             
        clrf    PORTB                  
        movlw   0xFF                   
        movwf   PORTA
        bcf     STATUS,RP0             
 Principal
        movf    PORTA,W                 
        movwf   Contador               
        movf    Contador,F             
        btfsc   STATUS,Z               
        goto    PuntoDecimal           
        sublw   d'9'                   
        btfss   STATUS,C
         END



4. ¿Como se realiza el manejo de memoria?

La reserva de memoria dinámica se hace en tiempo de ejecución después de leer los datos y de conocer el

tamaño exacto del problema. Como consecuencia se adapta mucho mejor a las necesidades en cada caso.

El sitio donde se almacenan los objetos se denominan en ingles heap o free store traducido como montículo o memoria libre, y el sitio preciso donde se encuentre depende del compilador y el tipo de puntero utilizado. La creación y estrucción de los objetos esta

en manos del programador a través de los operadores new y delete.

En C# las variables que se declaran son punteros y se pasan eficientemente con referencia, tampoco es necesario considerar la liberación de la me

moria puesto que framework se encarga de lib

erar todas las referencias que no se estén utilizando y compactar la memoria para mejorar el rendimiento.



5. ¿Que es el direccionamiento en lenguaje ensamblador?

Se les llama modos de direccionamiento a las distintas formas de combinar los operadores según el acceso que se hace a memoria.

Dicho de otra manera, un modo de direccionamiento será una forma de parámetro para las instrucciones. Una instrucción que lleve un parámetro, por lo tanto, usará un modo de direccionamiento, que dependerá de cómo direccionará (accesará) al parámetro; una instrucción de dos parámetros, combinará dos modos de direccionamiento.




6¿Cuales son los tipos de direccionamiento?

  • Modo registro

Usa solamente registros como operadores

Es el más rápido, pues minimiza los recursos necesarios (toda la información fluye dentro del EU del CPU).

  • Modo inmediato

Tiene dos operandos: un registro y una constante que se usa por su valor.

El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al hacer el "fetch" de la instrucción.

Por tanto, es rápido aunque no tanto como el modo registro; requiere ir al BIU por el dato.

  • Modo directo

Uno de los operandos involucra una localidad específica

de memoria

El valor constante se tiene que buscar en memoria, en la localidad especificada.

Es más lento que los anteriores, pero es el más rápido para ir a memoria, pues ya "sabe" la localidad, la toma de

la instrucción y no la tiene que calcular.

  • Modo indirecto

Se usan los registros SI, DI como apuntadores

El operando indica una localidad de memoria, cuya dirección (sólo la parte desplazamiento) está en SI o DI.

Es más lento que los anteriores, pues tiene que "calcular" la localidad.

  • Modo indexado de base

Formato:

[

de leer los datos y de conocer el tamaño exact

o del problema. Como consecuencia se adapta mucho mejor a las necesidades en cada caso.

El sitio donde se almacenan los objetos se denominan en ingles heap o free store traducido como montículo o memoria libre, y el sitio preciso donde se encuentre depende del compilador y el tipo de puntero utilizado. La creación y estrucción de los objetos esta en manos del programador a través de los operadores new y delete.

En C# las variables que se declaran son punteros y se pasan eficientemente con referencia, tampoco es necesario considerar la liberación de la me

moria puesto que framework se encarga de lib

erar todas las referencias que no se estén utilizando y compactar la memoria para mejorar el rendimiento.

La reserva de memoria dinámica se hace en tiempo de ejecución después


BX o BP
+ SI o DI (opcionales)
+ constante (opcional)
]

BX o BP indica una localidad base de la memoria

A partir de BX o BP, se puede tener un desplazamiento variable y uno constante

La diferencia es el segmento sobre el que trabajan por defecto:

BX por defecto en el segmento de datos

BP por defecto en el segmento de pila.

7. ¿Que es el formato de un programa?

Es una manera particular de codificar información para almacenarla en un archivo informático.

Dado que una unidad de disco, o de hecho cualquier memoria sólo puede almacenar bits, la computadora debe tener alguna manera de convertir la informaciónprocesador de texto, habrá a ceros y unos y viceversa. Hay diferentes tipos de formatos para diferentes tipos de información. Sin embargo, dentro de cada tipo de formato, por ejemplo documentos de un

normalmente varios formatos diferentes, a veces en competencia.



No hay comentarios:

Publicar un comentario