Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Electrnica 604-A Laguns Gonzales Jos Alfredo Ramrez Lpez Rafael Solano Uscanga Gloria Rodriguez Rodriguez No
1.4 lenguaje ensamblador del p. 1.4.1 registros 1.4.2 declaracin de segmentos 1.4.3 modos de direccionamiento 1.4.4 control de dispositivos de entrada y salida 1.4.5 conjuntos de instruccin 1.4.6 esqueleto de un programa 1.4.7 uso de procedimientos
3. Flexibilidad
Desventajas
4. Tiempo de programacin
7. Falta de portabilidad
Ventajas
1 .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el mas cercano a la mquina la computadora lo procesa mas rpido.
2. Eficiencia de tamao Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan libreras y dems como son los lenguajes de alto nivel. 3. Flexibilidad Es flexible porque todo lo que puede hacerse con una mquina, puede hacerse en el lenguaje ensamblador de esta mquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al mximo los recursos de la mquina. O sea que en lenguaje ensamblador se pueden hacer tareas especificas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite .
Desventajas
4. Tiempo de programacin Como es un lenguaje de bajo nivel requiere ms instrucciones para realizar el mismo proceso, en comparacin con un lenguaje de alto nivel. Por otro lado, requiere de ms cuidado por parte del programador , pues es propenso a que los errores de lgica se reflejen ms fuertemente en la ejecucin.
Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la maquina, programar en este lenguaje lo ms comn que pueda pasar es que la mquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones invlidas, que normalmente no aparecen al usar un lenguaje de alto nivel.
Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos ms instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.
7. Falta de portabilidad
Porque para cada mquina existe un lenguaje ensamblador; por ello, evidentemente no es una seleccin apropiada de lenguaje cuando deseamos codificar en una mquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.
Relacin del lenguaje ensamblador con los componentes internos del procesador
En la memoria se almacena la informacin en celdas especiales
Unidad aritmtica y lgica es la responsable de realizar como su nombre lo indica operaciones aritmticas y lgicas. Unidad de control Se encarga de coordinar de que los otros componentes ejecuten las operaciones correctamente. Bus interno son los canales por donde pasa la informacin que la mquina va a procesar (bus de entrada) o procesada (bus de salida).
Registro
Concepto. Los registro del procesador se emplean para controlar instrucciones de ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son espacios fsicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo el microprocesador los registros estn divididos en seis grupos los cuales tienen un fin en especifico.
(BX) BASE.- Cuando se acceda a la memoria con frecuencia se utiliza este registro en combinacin con los registros ndice . (En el direccionamiento indirecto).(DS:BX).
(CX) CONTADOR.- Durante la ejecucin de un lazo(loop), este registro contiene el valor del ndice de conteo, sirve tambin como contador en rotaciones y desplazamientos.
(DX)
REG. DE DATOS.- Registro utilizado para almacenamiento general y se utiliza junto con el registro AX en multiplicaciones y divisiones, en la instruccin CWD y en IN y OUT para direccionamiento indirecto de puertos (el registro DX indica el nmero de puerto de entrada/salida).
DI, SI.- (Destination Index, Source Index) Son capaces de autoincrementarse o autodecrementarse, debido a esto pueden usarse en el manejo de tablas (Apuntan con referencia a DS:SI ES:DI).
REGISTROS DE CONTROL:
IP.- (Apuntador de instrucciones) Guarda la direccin del cdigo de la siguiente instruccin a traer desde memoria apuntado por CS.(CS:IP) . F.-(Registro de banderas o estado) Refleja el resultado de la operacin aritmtica o lgica ejecutada anteriormente. T.-(TRAP) Controla la operacin single step con un 1 despus de cada instruccin se genera una interrupcin controlada por el vector 1.
S.-(SIGNO).-Refleja el signo del resultado de la operacin(con 1 es neg.) . Z.-(CERO)- Cuando el resultado de la operacin es cero. A.-(CARRY AUXILIAR) Cuando hay un lleva del bit 3 al 4 (para operaciones de 8 bits) o un lleva del bit 7 al 8 (para operaciones de 16 bits).
P.-(PARIDAD) - Cuando el No. de unos del resultado es impar se levanta esta bandera p/conservar la paridad.
C.-(CARRY) Cuando hay un lleva del bit 15 al Carry p/ operaciones de 16 bits y del 7 al Carry de 8 bits.
CS.- Segmento de Cdigo. Segmento donde se encuentra el programa. La direccin se forma (CS:IP). SS. Segmento de Stack. Apunta hacia el rea de Stack, que contiene los datos y las direcciones que se necesitan guardar temporalmente. La direccin se forma (SS:SP) o ( SS:BP ). DS.- Segmento de Datos. Apunta a un segmento donde se guardan datos, constantes y reas de trabajo definidos por el programa. (DS:BX) o (DS:SI ). ES.- Segmento Extra. Puede usarse como un segundo apuntador de stack o como un segundo apuntador de datos (ES:BX) o ( ES:DI ).
Declaracin de segmentos
Alineamiento:
este atributo especifica el atributo fsico donde el link debe establecer este segmento en memoria, sino se especifica ningn alineamiento este se asume como PARA, estos pueden ser:
BYTE: el segmento se establece en el siguiente byte disponible. WORD: el segmento se establece en la siguiente palabra disponible. DWORD: el segmento se establece en la siguiente doble palabra disponible. PARA: el segmento se establece en el siguiente prrafo disponible. PAGE: el segmento se establece en la siguiente pagina (256 bytes) disponible.
Combinacin:
este atributo describe como el link debe combinar los segmentos lgicos con nombre indecisos en un solo segmento fsico. Los posible atributos de combinacin son los siguientes:
PUBLIC O MEMORY: todos los segmentos con cualquiera de estos atributos de combinacin, que contengan el mismo nombre de segmento sern encadenados en un solo segmento fsico. COMMON: todos los segmentos con este atributo de combinacin y el mismo nombre de segmento, el link comenzara estos segmentos lgicos con el mismo nombre en la misma direccin de memoria fsica, tal que los segmentos lgicos se encuentran traslapados. STACK: este atributo de combinacin indica que todos los segmentos con este atributo de combinacin sern encadenados en uno solo, el registro SS contendr la direccin de este segmento y SP el tamao de este segmento cuando DOS carga el programa antes de ejecutarlo. ATxxx: este atributo de combinacin no define mas datos al programa, solamente nos permite hacer referencia a una direccin especifica de memoria por medio de nombre simblicos, xxx es la direccin de memoria fija que se le asignara a este segmento.
Modos de direccionamiento
son un mecanismo que permite conocer la ubicacin de un dato o instruccin.
tipos:
Inmediato
Indirecto
Directo
Indexado
registro
Conjunto de instrucciones
Las instrucciones, como su propio nombre indica, van a decir que se debe hacer con los datos, o con que datos se debe realizar cierta operacin.
Las instrucciones estn formadas por dos partes, tal y como muestra a continuacin
El cdigo de operacin, est siempre presente en cualquier tipo de instruccin. Por el contrario, el operando puede o no estarlo. Por ejemplo, para que la CPU detenga la ejecucin de un programa, es suficiente con el cdigo de operacin. Sin embargo, para realizar una suma, a parte del cdigo de operacin habr que indicar con que dato se debe sumar, ya sea explcitamente despus del cdigo de operacin o indicando en su lugar la posicin de memoria donde se encuentra dicho dato.
Las instrucciones se pueden clasificar segn el tipo de operacin que realicen en:
Instrucciones lgicas: Realizan las operaciones lgicas entre operandos, tales como suma lgica, complementacin, etc.
Instrucciones aritmticas: Realizan las operaciones aritmticas, tales como la suma aritmtica, divisin aritmtica, etc. Este tipo de operaciones se realiza entre acumuladores y posiciones de memoria. Instrucciones de salto: Este tipo de instrucciones corresponde a los saltos condicionales (hacen una cosa u otra segn el resultado de ciertas operaciones) e incondicionales. Instrucciones de transferencia de datos (entrada/ salida): Estas instrucciones "ordenan" el paso de informacin entre distintos dispositivos del sistema. Instrucciones de control: Controlan el desarrollo del programa, lo finaliza, inicializa, no operacin (NOP), etc.
La parte de salida, por el contrario, consiste en una serie de registros en los que el sistema deposita el resultado de la informacin ya procesada. En las entradas se introduce la informacin de manera que cuando se ordena, mediante los buses de control y de direcciones, el sistema selecciona en un instante dado cuales de esas informaciones presentes en las entradas deben transferirse al bus de datos para su proceso.
Nota: Al igual que sucede en un sistema abierto con la Memoria Central, la Unidad de E/S es un elemento que no esta en el interior del microprocesador, pero si dentro de un micro controlador.
Code
mov ax,@data mov ds,ax push ds codigo programa mov ax, 4c00h int ah end
Inicializacin
Segmento de Cdigo
Finalizacin
Conjunto de procedimiento
Ensamblaje
Es el programa que convierte
Enlace y Ejecucin
Encontrar los mdulos a
enlazar. Construir el modulo de carga asignado a los segmentos. Rellenar todos los desplazamientos de segmentos no terminado. Rellenar todas las direcciones de los segmentos. Cargar el programa.