TEMA:
FUNCIONES DEL ENSAMBLADOR
NOMBRE:
LIZ DOMINGUEZ
CED.
8-864-626
PROFESORA:
YESSICA CHABLE
CARRERA:
ING. EN SISTEMA
ASIGNATURA:
ARQUITECTURA Y LOG. DE COMPUTADORAS
NIVEL:
2
TURNO:
DIURNO
FECHA DE ENTREGA:
VIERNES 8-JULIO-2011
INTRODUCCION
En este trabajo explica la funciones del ensamblador según su sintaxis y sus atributos en la q el lenguaje de ensamblador es un lenguaje de programación de bajo nivel para los computadores. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU en la que cada registro realiza su función.
FUNCIONES DEL ENSAMBLADOR
Sintaxis del lenguaje ensamblador
MOV: registro, MOV AX, BX MOV memoria, registro MOV [2000],AX MOV registro, memoria MOV BX,[1500] MOV registro, constante MOV AX,1000 Las instrucciones INC y DEC: Son las más básicas a la hora de hacer operaciones con registros: INC, incrementa.
MOV AL, [1000]
Esta instrucción indica que se copie el valor de la porción de la memoria que esté en la ubicación 1000 (En hexadecimal) a la parte baja del registro AX (AL). Cuando un operando es un valor de una dirección de memoria, ésta dirección se escribe entre corchetes, recordar que el operando 1 es el destino y el operando 2 es el origen. Y cuando es una constante dependerá del ensamblador, en el caso del debug (Un programa que sirve para crear y editar aplicaciones que viene con el DOS) se interpretarán como hexadecimales, en los siguientes ejemplos se interpretará que las constantes son números hexadecimales.
También se puede tomar un valor de la memoria apuntado por un registro, por ejemplo:
MOV AL, [DI]
DI está apuntado al valor que está en la memoria que será copiado al registro AL. El nombre MOV viene de la palabra move, que es una palabra del ingles que significa mover. Justamente la instrucción mencionada significa, mover el valor apuntado por DI a AL.
También se puede copiar el valor de un registro a otro
MOV AL, BL
En este caso se copia el valor de BL a AL
Igualmente se puede copiar el valor de la parte baja de un registro a la parte alta de otro registro
MOV CH, DL
Así como también operar con las partes altas
MOV AH, DH
Inclusive se puede copiar el valor de un registro a una dirección de memoria
MOV [1000], AL
Igualmente apuntada la dirección de memoria a DI
MOV [DI], AL
Y también con los registros completos (Solamente completos en el procesador 8086)
MOV AX, DX
También trabajar con los registros completos para todos los procesadores de 32 bits
MOV EBX, EDX
En éste caso mueve la totalidad del registro DX a la totalidad del registro BX, en éste caso se está trabajando con los registros en forma extendida (32 bits), pero hay que tener precaución ya que el procesador 8086 no interpretará correctamente ésta instrucción (El procesador 8086 es obsoleto por ésta desventaja y otras más, por ejemplo sólo puede direccionar 1 MB), además el debug no puede interpretar ésta instrucción.
No se puede realizar lo siguiente porque no se pueden pasar valores en la memoria sin la intervención de un registro, además no se ha especificado el tamaño
MOV [1000], [2000]
Igualmente no se puede hacer lo siguiente
MOV [DI], [1000]
Así como también lo siguiente
MOV [DI], [SI]
Sin embargo lo siguiente es correcto
MOV [1000], AX
Pero no lo siguiente porque no se está especificando el tamaño
MOV [SI], 1F
Lo correcto sería lo siguiente
Si se quiere transferir un byte
Registros especiales (Solo se pueden usar para los usos mencionados)
IP: Registro apuntador de la siguiente instrucción.
Registros punteros (También pueden tener uso general)
BP: Registro de apuntadores base
SI: Registro índice fuente
DI: Registro ìndice destino
Registros de segmento (Solo se pueden usar para los usos mencionados a excepción de ES)
CS: Registro del segmento de código
DS: Registro del segmento de datos
ES: Registro del segmento extra
La función scanf (scan-format, analizar con formato), en realidad representa a una familia de funciones que analizan una entrada de datos con formato y cargan el resultado en los argumentos que se pasan por referencia a dicha función o funciones:
· La función fscanf() (file-scanf) lee en un flujo de entrada dado, por lo general un fichero (file) abierto para lectura.
· La función sscanf() (string-scanf) obtiene la entrada que se va a analizar de una cadena de caracteres dada (string).
Todas ellas leen caracteres, los interpretan según un formato, y almacenan los resultados en sus argumentos. Cada uno cuenta con varios argumentos: por un lado, un formato de la secuencia del control (se describe más abajo), por otro, un sistema de argumentos del indicador que señala dónde la entrada convertida debe ser almacenada. El resultado es indefinido si hay escasos argumentos para dar formato. Si se agota el formato mientras que sigue habiendo las argumentos, los argumentos sobrantes son evaluados pero no procesados de ninguna otra manera.
Atributos de ficheros Basados en Linux y Unix
Atributo T: Este atributo es muy útil para utilizarlo con algunos directorios con gran número de accesos como un directorio de un servidor web, el servidor de ficheros, etc.
Atributo D: Este atributo hace que los datos escritos en un directorio, se sincronicen en el disco de forma automática. Es útil en el caso de discos en memoria RAM o bien en aquellos que la escritura sea en formato raw. No es muy seguro para equipos de uso habitual.
Atributo I: Pone el fichero en modo solo lectura y no es posible crear enlaces hacia el. Interesante atributo para activarlo en ficheros que rara vez son escritos. Binarios, ficheros de un servidor web, repositorios de consulta, o incluso ficheros de BBDD que no son accedidos vía web para su modificación.
Atributo S: Este atributo tiene el mismo significado para los ficheros, que el D para los directorios. Es útil en el caso de discos en memoria RAM o bien en aquellos que la escritura sea en formato raw. No es muy seguro para equipos de uso habitual.
Registro CS: El Dos almacena la dirección inicial del segmento de código de un programa en el registro CS. Esta dirección de segmento, mas un valor de desplazamiento en el registro de apuntado de instrucción (IP), indica la dirección de una instrucción que es buscada para sí ejecución.
Registro DS: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. En términos sencillos, esta dirección, mas un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un bytes especifico en el segmento de datos.
Registro SS: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un programa en el registro SS. Esta dirección de segmento, más un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que está siendo direccionada.
Registro DS: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. En términos sencillos, esta dirección, mas un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un bytes especifico en el segmento de datos.
Registro SS: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un programa en el registro SS. Esta dirección de segmento, más un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que está siendo direccionada.
Registro ES: Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro esta de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (índice).
CONCLUSION
He llegado a la conclusión que el lenguaje ensamblador es de gran importancia, ya que trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa más rápido.