Vous êtes sur la page 1sur 13

RESUMEN UNIDAD 1

1.1 IMPORTANCIA DE LA PROGRAMACIN EN LENGUAJE


ENSAMBLADOR

Se trabaja directamente con el microprocesador.
Permite conocer el funcionamiento interno de este.
Tiene la ventaja de que en l se puede realizar cualquier tipo de
programas que en los lenguajes de alto nivel no lo pueden
realizar.

El uso del lenguaje ensamblador le permite al programador indicarle al
computador exactamente cmo llevar a cabo una tarea especfica
usando la menor cantidad de instrucciones.

El lenguaje ensamblador da a un programador la capacidad de realizar
tareas muy tcnicas que seran difciles, si no es que imposibles de
realizar en un lenguaje de alto nivel.

El conocimiento del lenguaje ensamblador permite una comprensin de
la arquitectura de la mquina que ningn lenguaje de alto nivel puede
ofrecer.

El lenguaje ensamblador es de suma importancia ya que ste es
directamente traducible al lenguaje mquina y viceversa, es una
abstraccin que facilita su uso para el ser humano.


1.2 EL PROCESADOR Y SUS REGISTROS INTERNOS

Los registros del procesador se emplean para controlar instrucciones en
ejecucin, manejar direccionamiento de memoria y proporcionar
capacidad aritmtica. Los registros son direccionales por medio de un
nombre.

Los registros internos del procesador se pueden clasificar en 6 tipos:

Registros de segmento.
Registros de propsito general
Registros de apuntadores.
Registros de banderas.
Registros de Puntero de instruccin.
Registros de Pila.

1.3 LA MEMORIA PRINCIPAL (RAM)

Es aquella memoria de un ordenador, donde se almacenan
temporalmente tanto los datos como los programas que la CPU est
procesando o va a procesar en un determinado momento.

Esta clase de memoria es voltil, es decir que, cuando se corta la
energa elctrica, se borra toda la informacin que estuviera almacenada
en ella.
La Memoria Principal se comunica con el microprocesador de la CPU
mediante el bus de direcciones. El ancho de este bus determina la
capacidad que posea el microprocesador para el direccionamiento de
direcciones en memoria.


1.4 EL CONCEPTO DE INTERRUPCIONES

Una interrupcin es una operacin del hardware que indica a la CPU que
detenga la ejecucin de lo que estaba haciendo, conserva la situacin
del proceso y enva a la CPU a una direccin determinada en la que
tiene un programa de control de interrupcin o de servicio de
interrupciones.

Causas

Error de mquina detectado
Error de programa
Interrupcin externa (el operador pide una determinada funcin)
Interrupcin de entrada/salida (el dispositivo de E/S pide atencin
o hace una indicacin de que ha iniciado una operacin)
Llamada al supervisor por el programa
Tipos
1. Interrupcin por errores o por daos en la mquina
2. Interrupcin por causa del programa (o desvo)
3. Interrupcin por entrada/salida
4. Interrupcin externa
5. Interrupcin de recuento






1.5 LLAMADAS A SERVICIOS DEL SISTEMA


Es el mecanismo usado por una aplicacin para solicitar un servicio al
sistema operativo.

Cuando una llamada al sistema es invocada, la ejecucin del programa
que invoca es interrumpida y sus datos son guardados, normalmente en
su PCB (Bloque de Control de Proceso), para poder continuar
ejecutndose luego. El procesador entonces comienza a ejecutar las
instrucciones de cdigo de alto nivel de privilegio, para realizar la tarea
requerida. Cuando esta finaliza, se retorna al proceso original, y
contina su ejecucin. El retorno al proceso demandante no
obligatoriamente es inmediato, depende del tiempo de ejecucin de la
llamada al sistema y del algoritmo de planificacin de CPU.


1.6 MODOS DE DIRECCIONAMIENTO

Son las diferentes maneras de especificar en informtica un operando
dentro de una instruccin en lenguaje ensamblador.

Un modo de direccionamiento especifica la forma de calcular la direccin
de memoria efectiva de un operando mediante el uso de la informacin
contenida en registros y / o constantes, contenida dentro de una
instruccin de la mquina o en otra parte.

Objetivos:
Reducir el espacio ocupado en memoria por las instrucciones.
Permitir la reubicacin del cdigo.
Facilitar el manejo de las estructuras de datos.

Tipos
Direccionamiento inmediato
Direccionamiento directo
Direccionamiento de registro
Direccionamiento indexado
Direccionamiento indirecto




1.7 PROCESO DE ENSAMBLADO Y LIGADO

Ensamblado
El ensamblado se lleva a cabo invocando al MASM. Este puede ser
invocado, usando una lnea de comando, de la siguiente manera:
MASM archivo [,[objeto][,[listado][,[cross]]]]][opciones][;]

Dnde:
Objeto.- Es el nombre para el archivo objeto.
Listado.- Nombre del archivo de listado de ensamblado.
Cross. Es un archivo de referencias cruzadas.

Link
De la misma forma que el ensamblado, la fase de liga se lleva a cabo
con el LINK. Este puede ser invocado de la misma forma que el MASM.
Los parmetros que este requiere son:
LINK objeto [,[ejecutable][,[mapa][,[librera]]]]][opciones][;]

Dnde:
Objeto.- Es el nombre para el archivo .OBJ
Ejecutable.- Nombre del archivo .EXE
Mapa.- Nombre del archivo mapa
Librera.- Nombre del archivo biblioteca de rutinas

1.8 DESPLEGADO DE MENSAJES EN EL MONITOR
Comentarlos En Lenguaje Ensamblador.

Un comentario empieza con punto y coma (:) y, en donde quiera que lo
codifique. el ensamblador supone que los dos caracteres a la derecha de
esa lnea son comentarios.
Un comentario puede contener cualquier carcter imprimible, incluyendo
el espacio en blanco.

Palabras Reservadas.

Ciertas Palabras en lenguaje ensamblador estn reservadas para sus
propsitos propios. Y son usadas solo bajo condiciones especiales.

Instrucciones
Directivas
Operadores
Smbolos predefinidos

Identificadores.
Un identificador es un nombre que se aplica a elementos en el
programa. Los dos tipos de identificadores son:
Nombre: que se refiere a la direccin de un elemento de dato.
Etiqueta: que se refiere a la direccin de una Instruccin.





















RESUMEN UNIDAD 2
2.1 ENSAMBLADOR (Y LIGADOR) A UTILIZAR
PROCESO DE ENSAMBLADO


2.2 CICLOS NUMERICOS
Las instrucciones de control de bucles son las siguientes:

Sintaxis Funcin
INC Incrementar
DEC Decrementar
LOOP Realizar un bucle
LOOPZ (LOOPE) Realizar un bucle si es cero
LOOPNZ (LOOPNE) Realizar un bucle si no es cero
JCXZ Salta si CX es cero

2.3 CAPTURA BSICA DE CADENAS

Las instrucciones bsicas de cadenas son las siguientes:

Sintaxis Funcin
MOVSB / MOVSW Mueve cadenas entre localidades de memoria
LODSB / LODSW Carga un byte / palabra

2.4 COMPARACION Y PRUEBA
Nos van a servir para realizar las comparaciones, y son:
Sintaxis Funcin
TEST Comprueba dos registros, (no guarda el resultado).
CMP Compara un registro y una direccin de memoria.

2.5 SALTOS

Se emplea para transferir el control donde indica el operador (etiqueta).

sintaxis

funcin
Banderas (flags)
S Z OF PF ZF SF CF
JMP Siempre se va a
ejecutar

JA(JNBE) Salta si no es igual
JAE(JNBE) Salta si y solo si es
igual o no menor.
0 1
JB(JNA) salta si es menor si no
lo es, o si es igual
1,0 1,0
JE(JZ) se ejecuta cuando la
bandera Z = 1
1
JNE(JNZ) se ejecuta cuando la
bandera Z = 0
0
JG(JNLE) el salto ocurrir si
ZF = 0 u OF = SF
SF 0,
SF

JGE(JNL) se ejecuta si SF = OF SF OF
JL(JNGE) se toma en cuenta el
signo, saltara si
SF != OF
!OF
JLE(JNG) Se considera el signo.
Salta si ZF = 1 u
SF != OF
1 !OF
JC se ejecuta si CF = 1 1
JNC se ejecuta si CF = 0 0
JNO salta si OF = 0 0
JNP(JPO) salta si PF = 0 0
JNS contrario a JL que
especifica considerar
las banderas
seleccionadas por el
programador

JO El salto se realiza si
OF = 1.
1
JP(JPE) El salto se efecta si
PF = 1.
1
JS saltara si SF = 1 1






2.6 CICLOS DE CONDICIONALES

Estn asociados con los saltos y sus respectivas banderas. La aplicacin
incluir instrucciones de comparacin para que las banderas sean
consideradas, es responsabilidad del programador que estas estn en su
estatus original.
Tipos de ciclos:
For
While
IF

2.7 INCREMENTO Y DECREMENTO

Instrucciones de Incremento y Decremento:

Sintaxis Funcin
INC Destino La instruccin suma 1 al operando destino y
guarda el resultado en el mismo operando destino.
DEC Destino Esta operacin resta 1 al operando destino y
almacena el nuevo valor en el mismo operando.

2.8 CAPTURA DE CADENAS CON FORMATO

Permiten el movimiento, comparacin o bsqueda rpida en bloques de
datos:
Sintaxis Funcin
MOVS/MOVSB/MOVSW
destino, fuente
Transfiere el byte o la palabra apuntada por
DS:SI al byte o palabra apuntada por ES:DI.
CMPS/CMPSB/CMPSW
destino, fuente
Comparacin de bytes o palabras de
cadenas
SCAS/SCASB/SCASW destino Anlisis de un byte o de una palabra de una
cadena.
LODS/LODSB/LODSW fuente Carga de un byte o de una palabra de una
cadena.
STOS/STOSB/STOSW
destino
Almacenamiento de un byte o de una
palabra en una cadena.
REP/REPZ/REPE/REPNZ/REP
NE instruccin de cadena
repeticin de una instruccin de cadena

2.9 INSTRUCCIONES ARITMTICAS

Estas pseudo instrucciones se emplean para combinar los diferentes bits
que conforman un registro.

Sintaxis Funcin
ADD Destino, Fuente Adiciona dos operadores almacenando el
resultado en el destino. No emplea el bit de
acarreo.
ADC Destino, Fuente Adiciona dos operadores almacenando el
resultado en el destino, la bandera de acarreo
entonces se activa.
DIV Fuente Efecta la divisin sin considerar el signo, en
trmino de bytes o palabras. Destino y Fuente
deben ser igual en tamao.
IDIV Operador Igual que el anterior solo que considera el
signo.
MUL Operador Multiplica considerando el signo.
IMUL Operador Considera la multiplicacin que deber estar
asociada con la pseudo instruccin MOV.
SBB Destino, Fuente Esta instruccin efecta la resta afectando la
bandera de acarreo.
SUB Substrae el operador fuente con el destino
(ninguna bandera se activa).

2.10 MANIPULACIN DE PILA
Una de las funciones de la pila del sistema es la de salvaguardar
(conservar) datos (la otra es la de salvaguardar las direcciones de
retorno de las llamadas a subrutinas):

PUSH introducir
POP extraer
PUSHF introducir indicadores
POPF extraer indicadores










2.11 OBTENCIN DE CADENA CON REPRESENTACIN

Instrucciones de Desplazamiento Lineal

Sintaxis Funcin
SAL/SHL destino, contador Desplaza a la izquierda los bits del
operando el nmero de bits especificado
en el segundo operando
SAR destino, contador Desplaza a la derecha los bits del
operando destino el nmero de bits
especificado en el segundo operando
SHR destino, contador Desplaza a la derecha los bits del
operando destino el nmero de los bits
especificados en el segundo operando.
Los bits de la izquierda se llena con cero.


2.12 INSTRUCCIONES LGICAS

Son instrucciones que permiten hacer un modelo lgico, se usan en el
diseo lgico de un procesador.

Sintaxis Funcin
AND destino, fuente Se prende cuando los dos operadores son
iguales verdaderos (1).
NEG destino Genera el complemento a 2 del operando
destino y lo almacena en este mismo operando.
NOT destino Acarrea la negacin bit por bit
OR destino, fuente Con un bit que este encendido se prende (OR
inclusivo).
TEST destino, fuente Para que sea verdadero al menos uno debe ser
verdadero pero no los dos (XOR exclusivo).
XOR destino, fuente Ejecuta la conjuncin bit por bit, a diferencia del
AND no almacena el resultado










2.13 DESPLAZAMIENTO Y ROTACIN
Instrucciones de Desplazamiento Circular

Sintaxis Funcin
RCL destino, contador Rotar a la izquierda los bits del operando
destino junto con el indicador de acarreo CF el
nmero de bits especificado en el segundo
operando.
RCR destino, contador Rotar a la derecha los bits del operando destino
junto con el indicador de acarreo CF el nmero
de bits especificado en el segundo operando.
ROL destino, contador Rota a la izquierda los bits del operando destino
el nmero de bits especificado en el segundo
operando.
ROR destino, contador Rota a la derecha los bits del operando destino
el nmero de bits especificado en el segundo
operando.

2.14 OBTENCION DE CADENA CON LA REPRESENTACION
HEXADECIMAL

Procesos de Control

Sintaxis Funcin
NOP Realiza una operacin nula.
ESC cdigo_operacin, origen Abre al dispositivo externo el acceso a
las direcciones y operandos requeridos.
HLT El procesador se detiene hasta que se
restaura el sistema o se recibe una
interrupcin.
LOCK se utiliza en aplicaciones de recursos
compartidos para asegurar que no
accede simultneamente a la memoria
ms de un procesador.
WAIT Provoca la espera del procesador hasta
que se detecta una seal en la patilla
TEST
XLAT tabla carga en el registro AL el contenido de
la posicin [BX][AL], en donde el
registro BX ha de apuntar al comienzo
de una tabla



Instrucciones de transferencia

Sintaxis Funcin
LEA destino, origen Transfiere el desplazamiento del operando fuente
al operando destino.
LDS destino, origen Traslada un puntero de 32 bits (direccin
completa de memoria compuesta por segmento y
desplazamiento), al destino indicado y a DS.
LES destino, origen Esta instruccin es anloga a LDS, pero utilizando
ES en lugar de D

2.15 CAPTURA Y ALMACENAMIENTO DE DATOS NUMERICOS


Modelos de memoria.

Los modelos de memoria constituyen las diversas maneras de acceder a
la memoria por parte de los compiladores de C.

Usando la pila

Una seccin de la memoria del programa es reservado para el uso de
una pila. La Intel 80386 y procesadores superiores contienen un registro
llamado puntero a la pila, esp, el cual almacena la direccin del tope de
la pila, la figura 1 de abajo muestra 3 valores enteros, 49, 30 y 72,
almacenados en la pila (cada entero ocupando 4 bytes) con el registro
esp apuntando a la direccin del tope de la pila.









2.16 OPERACIONES BASICAS SOBRE ARCHIVOS DE DISCO
ENTRADA Y SALIDA

Funciones que debe realizar un computador para ejecutar trabajos de
entrada/salida:

Direccionamiento o seleccin del dispositivo que debe llevar a cabo
la operacin de E/S.

Transferencia de los datos entre el procesador y el dispositivo (en
uno u otro sentido).

Sincronizacin y coordinacin de las operaciones.

Se define una operacin de E/S como el conjunto de acciones necesarias
para la transferencia de un conjunto de datos.

Funciones que desempea una operacin de E/S:
Recuento de las unidades de informacin transferidas
(normalmente bytes) para reconocer el fin de operacin.
Sincronizacin de velocidad entre la CPU y el perifrico.
Deteccin de errores (e incluso correccin) mediante la utilizacin
de los cdigos necesarios (bits de paridad, cdigos de redundancia
cclica, etc.)
Almacenamiento temporal de la informacin. Es ms eficiente
utilizar un buffer temporal especfico para las operaciones de E/S
que utilizan el rea de datos del programa.
Conversin de cdigos, conversin serie/paralelo, etc.

Vous aimerez peut-être aussi