Está en la página 1de 24

6B

Programacin
bsica
Unidad 2

GEIDAR JESS RAMREZ PREZ


Lenguajes de Interfaz
6B

NDICE
Ensamblador y ligador a utilizar2
Ciclos numricos..4
Captura bsica de cadenas..5
Comparacin y prueba.........5
Saltos..5
Ciclos condicionales....6
Incremento y decremento...7
Captura de cadenas con formato 8
Instrucciones aritmticas9
Manipulacin de la pila ...10
Obtencin de una cadena con la representacin hexadecimal10
Instrucciones lgicas15
Desplazamiento y rotacin...15
Obtencin de una cadena con la representacin decimal..18
Captura y almacenamiento de datos numricos..19
Operaciones bsicas sobre archivos de disco....22

ENSAMBLADOR Y LIGADOR A UTILIZAR


Ensamblado
Un ensamblador es el programa que convierte un listado de cdigo
fuente, escrito en un fichero de texto, en cdigo objeto, es decir,
lenguaje mquina (el que finalmente interpretar el procesador) en el
que slo le faltan las referencias a rutinas externas. El cdigo fuente
es un fichero que contiene la secuencia de instrucciones en lenguaje
ensamblador que forma el programa, as como ciertas directivas o
comandos para el propio ensamblador, que ha sido creado utilizando
un editor de texto. El cdigo objeto consta del cdigo en lenguaje
mquina y de la informacin necesaria para enlazarlo con otros
mdulos objeto. Con TASM el proceso de ensamblado se realiza
escribiendo lo siguiente en la ventana de comandos:
tasm /zi /l nombre donde nombre es el nombre del fichero .asm con
el cdigo fuente. La extensin no es necesaria ponerla y los
parmetros /zi y /l slo son tiles si queremos hacer un proceso de
depuracin (debug) con el Turbo Debugger. Tras la ejecucin de esta
lnea se nos crear un fichero nombre.obj
Linkado y montado
Al construir un programa algunos de sus mdulos pueden colocarse
en el mismo mdulo fuente y ensamblarse juntos, otros pueden estar
en mdulos diferentes y ser ensamblados separadamente. En
cualquier caso, los mdulos objeto resultantes, algunos de los cuales
pueden estar agrupados en libreras, deben ser enlazados para
formar el mdulo de carga, antes de que se pueda ejecutar el
programa. Adems de dar como salida el mdulo de carga, el linker o
enlazador imprime un mapa de memoria que indica donde sern
cargados los mdulos objeto en la memoria.
Despus de crearse el mdulo de carga, ste es cargado por el
cargador en la memoria del ordenador y comienza la ejecucin. Para
linkar con TASM escribimos:
tlink /v nombre Tras esto se nos crear el fichero ejecutable (.exe o
.com) que el sistema operativo se encargar de cargar en memoria

cuando lo ejecutemos. De nuevo, la extensin no es necesaria


ponerla y el parmetro /v slo es til para el Turbo Debugger.

CICLOS NUMERICOS
Un bucle es un grupo de instrucciones que se ejecutan cclicamente un
nmero concreto de veces. Para construir bucles disponemos de las

siguientes instrucciones:
stas posibilitan el grupo de control ms elemental de nuestros
programas. Un bucle es un bloque de cdigo que se ejecuta varias
veces. Hay 4 tipos de bucles bsicos: o Bucles sin fin o Bucles por
conteo, Bucles hasta o Bucles mientras. Las instrucciones de control
de bucles son las siguientes:
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

CAPTURA BSICA DE CADENAS


Una cadena es una secuencia de bytes contiguos. Las operaciones que
se pueden realizar sobre las cadenas son las siguientes:

COMPARACION Y PRUEBA
Este grupo es una continuacin del anterior, incluye las siguientes
instrucciones:
TEST verifica
CMP compara
SALTOS
JMP salta
JE, JZ salta si es igual a cero
JNE, JNZ salta si no igual a cero
JS salta si signo negativo
JNS salta si signo no negativo

JP, JPE salta si paridad par


JNP, JOP salta si paridad impar
JO salta si hay capacidad excedida
JNO salta si no hay capacidad excedida
JB, JNAE salta si por abajo (no encima o igual)
JNB, JAE salta si no est por abajo (encima o igual)
JBE, JNA salta si por abajo o igual (no encima)
JNBE, JA salta si no por abajo o igual (encima)
JL, JNGE salta si menor que (no mayor o igual)
JNL, JGE salta si no menor que (mayor o igual)
JLE, JNG salta si menor que o igual (no mayor)
JNLE, JG salta si no menor que o igual (mayor)
CICLOS DE CONDICIONALES
Ciclo For
La Sintaxis empleada por el ciclo for es la siguiente:
for (valores de entrada ; condicin de terminacin ; iteracin
por ciclo)

Las tres partes del ciclo se encuentran separadas por ; (punto y


coma)

La primer parte del ciclo especifica valores previos a su inicio.

La segunda parte indica la condicin de terminacin para el ciclo,


la cual est directamente relacionada con los valores iniciales.

Finalmente, la ltima parte especifica cmo sern manipulados los


valores iniciales en cada iteracin del ciclo.

Ciclo IF
Una caracterstica del ciclo if/else es el uso de llaves { }, en el
ejemplo anterior pudo notar que no fueron utilizadas llaves { } para
delimitar las condicionales, al no emplearse este mecanismo, se
asume que el ciclo o condicional tendr efecto nicamente en la linea

contigua a su inicio. Aunque es recomendable utilizar llaves ({ } )


para incrementar la legibilidad del cdigo, es importante sealar que
esta sintaxis de no utilizar llaves ({ } ) es vlida y muy comn
(Lamentablemente) .
Existe otra variacin de if/else que agrupa las condicionales en una
sola expresin:
if (expresion Boolean
operacin falsa)

operacin

verdadera

Ciclo While
En este ciclo el cuerpo de instrucciones se ejecuta mientras una
condicin permanezca como verdadera, en el momento en que la
condicin se convierte en falsa el ciclo termina.
Su formato general es:
Cargar o inicializar variable de condicin;
While (condicin)
{
Grupo cierto de instrucciones;
Instruccin(es) para salir del ciclo; };
INCREMENTO Y DECREMENTO
Las instrucciones del ensamblador
Instrucciones de transferencia Son utilizadas para mover los contenidos
de los operandos. Cada instruccin se puede usar con diferentes modos
de direccionamiento.
MOV
MOVS (MOVSB) (MOVSW)
Instruccin MOV
Propsito: Transferencia de datos entre celdas de memoria, registros y
acumulador.
Sintaxis:
MOV Destino, Fuente

Donde Destino es el lugar a donde se movern los datos y fuente es el


lugar donde se encuentran dichos datos.
Los diferentes movimientos de datos permitidos para esta instruccin
son:
Destino: memoria. Fuente: acumulador
Destino: acumulador. Fuente: memoria
Destino: registro de segmento. Fuente: memoria/registro
Destino: memoria/registro. Fuente: registro de segmento
Destino: registro. Fuente: registro
Destino: registro. Fuente: memoria
Destino: memoria. Fuente: registro
Destino: registro. Fuente: dato inmediato
Destino: memoria. Fuente: dato inmediato
La instruccin MOV y los modos de direccionamiento.
He aqu nuestra primera instruccin:
MOV destino, origen
Efectivamente, sirve para mover. Lo que hace es copiar lo que haya en
"origen" en "destino". Lo de que primero vaya el destino y luego el
origen es comn a todas las instrucciones del 8086 que tengan dos
operandos, lo cual crear ms de un quebradero de cabeza al principio.
MOV AX,BL
MOV AX, BX sin embargo hace que el procesador coja el contenido de
BX y lo copiara en AX; lo que haba anteriormente en AX se pierde
(puesto que un registro al fin y al cabo es un nmero, en este caso de
16 bits, y ahora le hemos asignado un nuevo valor), mientras que BX no
se ve afectado. Cuando decimos "mover" en realidad sera ms
apropiado "copiar", porque no alteramos en absoluto el operando origen.

CAPTURA DE CADENAS CON FORMATO


Permiten el movimiento, comparacin o bsqueda rpida en bloques de
datos:
MOVC transferir carcter de una cadena
MOVW transferir palabra de una cadena

CMPC comparar carcter de una cadena


CMPW comparar palabra de una cadena
SCAC buscar carcter de una cadena
SCAW buscar palabra de una cadena
LODC cargar carcter de una cadena
LODW cargar palabra de una cadena
STOC guardar carcter de una cadena
STOW guardar palabra de una cadena
REP repetir
CLD poner a 0 el indicador de direccin
STD poner a 1 el indicador de direccin
INSTRUCCIONES ARITMTICAS
Instrucciones Aritmticas.
Estas instrucciones son las que realiza directamente el 8086/8088
a. Grupo de adicin:
ADD suma
ADC suma con acarreo
AAA ajuste ASCII para la suma
DAA ajuste decimal para la suma
b. Grupo de sustraccin:
SUB resta
SBB resta con acarreo negativo
AAS ajuste ASCII para la resta

DAS ajuste decimal para la resta


c. Grupo de multiplicacin:
MUL multiplicacin
IMUL multiplicacin entera
AAM ajuste ASCII para la multiplicacin
d. Grupo de divisin:
DIV divisin
IDIV divisin entera
AAD ajuste ASCII para la divisin
e. Conversiones:
CBW pasar octeto a palabra
CWD pasar palabra a doble palabra
NEG negacin
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

POPF extraer indicadores

PUSHF introducir indicadores


OBTENCION DE CADENA CON REPRESENTACION HEXADECIMAL
Procesos de Control
NOP (Operacin nula).
Sintaxis:

NOP
Indicadores:
OF
DF
IF
TF
SF
ZF
AF
PF
CF
Realiza una operacin nula, es decir, el microprocesador decodifica la
instruccin y pasa
a la siguiente. Realmente se trata de la instruccin XCHG AX,AX.
ESC (Salida a un coprocesador).
Sintaxis:
ESC cdigo_operacin, origen
Indicadores:
OF
-

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
-

Se utiliza en combinacin con procesadores externos, tales como los


coprocesadores de coma flotante o de E/S, y abre al dispositivo externo
el acceso a las direcciones y operandos requeridos. Al mnemnico ESC
le siguen los cdigos de operacin apropiados para el coprocesador as
como la instruccin y la direccin del operando necesario.
Ejemplo:
ESC 21,AX
HLT (Parada hasta interrupcin o reset).
Sintaxis:
HLT
Indicadores:
OF
DF
IF
TF
SF
ZF
AF
PF
CF
El procesador se detiene hasta que se restaura el sistema o se recibe
una interrupcin. Como en los PC se producen normalmente 18,2

interrupciones de tipo 8 por segundo (del temporizador) algunos


programadores utilizan HLT para hacer pausas y bucles de retardo. Sin
embargo, el mtodo no es preciso y puede fallar con ciertos
controladores de memoria.
LOCK (Bloquea los buses).
Sintaxis:
LOCK
Indicadores:
OF
-

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
-

Es una instruccin que se utiliza en aplicaciones de recursos


compartidos para asegurar que no accede simultneamente a la
memoria ms de un procesador. Cuando una instruccin va precedida
por LOCK, el procesador bloquea inmediatamente el bus, introduciendo
una seal por la patilla LOCK.
WAIT (Espera).
Sintaxis:
WAIT
Indicadores:
OF
-

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
-

Provoca la espera del procesador hasta que se detecta una seal en la


patilla TEST. Ocurre, por ejemplo, cuando el coprocesador ha terminado
una operacin e indica su finalizacin. Suele preceder a ESC para
sincronizar las acciones del procesador y coprocesador.
XLAT (traduccin).
Sintaxis:
XLAT tabla

Indicadores:
OF
-

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
-

La instruccin 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. Dicho de otra manera, AL hace de ndice de la tabla y de
almacn destino del contenido de la tabla.
Por ejemplo, el siguiente programa:
DATOS SEGMENT
TABLA DB 2, 3, 5, 8, 16, 23
DATOS ENDS
CODIGO SEGMENT
MOVE BX, OFFSET TABLA ;Inicializa BX con la direccin donde comienza
la tabla
MOVE AL, 5
XLAT TABLA
CODIGO ENDS
Hace que al final el contenido de AL sea 16 ya que es el quinto elemento
de la tabla y AL antes de XLAT TABLA contena el valor 5.
Otro ejemplo:
MOV BX, OFFSET TABLA
MOV AL, 4
XLAT TABLA
Para finalizar con las instrucciones de transferencia veremos un grupo
de tres instrucciones:
LEA o cargar direccin efectiva

LDS o cargar el puntero en DS


LES o cargar el puntero en ES denominadas de transferencia de
direcciones.
LEA (carga direccin efectiva).
Sintaxis:
LEA destino, origen Indicadores:
OF
-

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
-

Transfiere el desplazamiento del operando fuente al operando destino.


Otras instrucciones pueden a continuacin utilizar el registro como
desplazamiento para acceder a los datos que constituyen el objetivo. El
operando destino no puede ser un registro de segmento. En general,
esta instruccin es equivalente a MOV destino, OFFSET fuentey de hecho
los buenos ensambladores (TASM) la codifican como MOV para
economizar un byte de memoria. Sin embargo, LEA es en algunos casos
ms potente que MOV al permitir indicar registros de ndice y
desplazamiento para calcular el offset:
En el ejemplo de arriba, el valor depositado en DX es el OFFSET de la
etiqueta DATOS ms el registro SI. Esa sola instruccin es equivalente a
estas dos:

MOV DX, OFFSET DATOS


ADD DX, SI
LDS (carga un puntero utilizando DS).
Sintaxis:
LDS destino, origen
Indicadores:

OF
-

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
-

Traslada un puntero de 32 bits (direccin completa de memoria


compuesta por segmento y desplazamiento), al destino indicado y a DS.
A partir de la direccin indicada por el operando origen, el procesador
toma 4 bytes de la memoria: con los dos primeros forma una palabra
que deposita en destino y, con los otros dos, otra en DS.
Ejemplo:
PUNT DD 12345678H
LDS SI, PUNT
Como resultado de esta instruccin, en DS: SI se hace referencia a la
posicin de memoria 1234h: 5678h; 'DD' sirve para definir una variable
larga de 4 bytes (denominada PUNT en el ejemplo).
LES (carga un puntero utilizando ES).
Sintaxis:
LES destino, origen
Esta instruccin es anloga a LDS, pero utilizando ES en lugar de D
INSTRUCCIONES LGICAS
Son operaciones bit a bit que trabajan sobre octetos o palabras
completas:
NOT negacin
AND producto lgico
OR suma lgica
XOR suma lgica exclusiva
DESPLAZAMIENTO Y ROTACIN
Instrucciones de Desplazamiento Circular
RCL (Rotacin a la izquierda con acarreo).

Sintaxis:
RCL destino, contador
Indicadores:
OF
x

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
x

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. Si
el nmero de bits a desplazar es 1, se puede especificar directamente,
en caso contrario el valor debe cargarse en CL y especificar CL como
segundo operando. No es conveniente que CL sea mayor de 7, en bytes;
15, en palabras.
Ejemplos:
RCL AX,1
RCL AL,CL
RCL DI,1
RCR (Rotacin a la derecha con acarreo).
Sintaxis:
RCR destino, contador
Indicadores:
OF
x

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
x

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. Si
el nmero de bits es 1 se puede especificar directamente; en caso
contrario su valor debe cargarse en CL y especificar CL como segundo
operando:
Ejemplos:

RCR BX,CL
RCR BX,
ROL (Rotacin a la izquierda).
Sintaxis:
ROL destino, contador
Indicadores:
OF
x

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
x

Rota a la izquierda los bits del operando destino el nmero de bits


especificado en el segundo operando, que puede ser 1 CL previamente
cargado con el valor del nmero de veces.
Ejemplos:
ROL DX,CL
ROL AH,1
ROR (Rotacin a la derecha).
Sintaxis:
ROR destino, contador
Indicadores:
OF
x

DF
-

IF
-

TF
-

SF
-

ZF
-

AF
-

PF
-

CF
x

Rota a la derecha los bits del operando destino el nmero de bits


especificado en el segundo operando. Si el nmero de bits es 1 se puede
poner directamente, en caso contrario debe ponerse a travs de CL.
Ejemplos:
ROR CL,1

ROR AX,CL
OBTENCIN DE REPRESENTACION DE CADENAS DECIMAL
Instrucciones de Desplazamiento Lineal
AL/SHL (Desplazamiento aritmtico a la izquierda).
Sintaxis:
SAL/SHL destino, contador
Indicadores:
OF
DF
IF
TF
SF
ZF
AF
PF
CF
X
x
x
?
x
X
Desplaza a la izquierda los bits del operando el nmero de bits
especificado en el segundo operando que debe ser CL si es mayor que 1
los bits desplazados.

SAR (Desplazamiento aritmtico a la derecha).


Sintaxis:
SAR destino, contador
Indicadores:
OF
X

DF
-

IF
-

TF
-

SF
x

ZF
x

AF
?

PF
x

CF
x

Desplaza a la derecha los bits del operando destino el nmero de bits


especificado en el segundo operando. Los bits de la izquierda se rellenan
con el bit de signo del primer operando. Si el nmero de bits a desplazar
es 1 se puede especificar directamente, si es mayor se especifica a
travs de CL.

Ejemplos:
SAR AX, CL

SAR BP,1
SHR (Desplazamiento lgico a la derecha).
Sintaxis:
SHR destino, contador
Indicadores:
OF
X

DF
-

IF
-

TF
-

SF
x

ZF
x

AF
?

PF
x

CF
x

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. Si el nmero de bits a desplazar es 1 se puede especificar
directamente en el caso en que no ocurra se pone el valor en CL:

Ejemplos:
SHR AX,CL
SHR CL,1
CAPTURA Y ALMACENAMIENTO DE DATOS NUMERICOS
Bloques en ensamblador
MODELOS DE MEMORIA.
Los modelos de memoria constituyen las diversas maneras de
acceder a la memoria por parte de los compiladores de C. En el caso del
Turbo C se pueden distinguir los siguientes:
TINY: Se emplea en los programas donde es preciso apurar el consumo
de memoria hasta el ltimo byte. Los 4 registros de segmento (CS, DS,
ES, SS) estn asignados a la misma direccin, por lo que existe un total
de 64 Kb donde se mezclan cdigo, datos y pila. Los programas de este
tipo pueden convertirse a formato COM.

SMALL: Se utiliza en aplicaciones pequeas. Los segmentos de cdigo y


datos son diferentes y no se solapan. Por ello, hay 64 kb para cdigo y
otros 64 Kb a repartir entre datos y pila.
Segmentos Punteros
Modelo

Cdigo

Datos Pila

Cdigo

Datos

Tiny 64 Kbnear near


Small 64 Kb64 Kbnear near
Medium

1 Mb 64 Kbfar

Compact

64 Kb1 Mb near far

Large 1 Mb 1 Mb far

near

far

Huge 1 Mb 1 Mb
(Bloques > 64 Kb)

far

far

MEDIUM: Este modelo es ideal para programas largos que no manejan


demasiados datos. Se utilizan punteros largos para el cdigo (que puede
extenderse hasta 1 Mb) y cortos para los datos: la pila y los datos
juntos no pueden exceder de 64 Kb.
COMPACT: Al contrario que el anterior, este modelo es el apropiado para
los programas pequeos que emplean muchos datos. Por ello, el
programa no puede exceder de 64 Kb aunque los datos que controla
pueden alcanzar el Mb, ya que los punteros de datos son de tipo far por
defecto.
LARGE: Empleado en las aplicaciones grandes y tambin por los
programadores de sistemas que no tienen paciencia para andar forzando
continuamente el tipo de los punteros (para rebasar el lmite de 64 Kb).
Tanto los datos como el cdigo pueden alcanzar el Mb, aunque no se
admite que los datos estticos ocupen ms de 64 Kb. Este modo es el
que menos problemas da para manejar la memoria, no siendo quiz tan
lento y pesado como indica el fabricante.
HUGE: Similar al anterior, pero con algunas ventajas: por un lado, todos
los punteros son normalizados automticamente y se admiten datos
estticos de ms de 64 Kb. Por otro, y gracias a esto ltimo, es factible

manipular bloques de datos de ms de 64 Kb cada uno, ya que los


segmentos de los punteros se actualizan correctamente. Sin embargo,
este modelo es el ms costoso en tiempo de ejecucin de los
programas.
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.

A diferencia de una pila creciendo hacia arriba, en las mquinas Intel


crecen hacia abajo. En la Figura 2 muestra las capas de la pila despus
de la ejecucin pushl $15.
El puntero de la pila es decrementado de cuatro en cuatro y el nmero
15 es almacenando como lugares de 4 bytes, 1988, 1989, 1990 y 1991

La instruccin popl %eax copia el valor del tope de la pila(4 bytes) a eax
e incrementa esp en 4. Qu sucede si no quieres copiar el valor del tope
de la pila a un registro?. Puedes ejecutar la instruccin addl $4, %esp el
cual simplemente incrementa el puntero de la pila.
#Listing 3
.globl main
main:
movl $10, %eax
call foo
ret
foo:
addl $5, %eax
ret
En Listing 3, la instruccin call foo pone la direccin de la instruccin
despus de call en la llamada al programa sobre la pila y va hacia foo.
La subrutina termina con ret, el cual transfiere el control a la instruccin
cuya direccin se toma desde el tope de la pila. Obviamente el tope de
la pila debe contener una direccin vlida

OPERACIONES BASICAS SOBRE ARCHIVOS DE DISCO


ENTRADA Y SALIDA
Funciones que realiza
Vamos a sealar las 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.
Esta ltima funcin es necesaria debido a la deferencia de velocidades
entre los dispositivos y la CPU y a la independencia que debe existir
entre los perifricos y la CPU (por ejemplo, suelen tener relojes
diferentes).

Se define una transferencia elemental de informacin como la


transmisin de una sola unidad de informacin (normalmente un byte)
entre el procesador y el perifrico o viceversa. Para efectuar una
transferencia elemental de informacin son precisas las siguientes
funciones:
- Establecimiento de una comunicacin fsica entre el procesador y
el perifrico para la transmisin de la unidad de informacin.
- Control de los perifricos, en que se incluyen operaciones como
prueba y modificacin del estado del perifrico. Para realizar estas
funciones la CPU gestionar las lneas de control necesarias.
Definiremos una operacin de E/S como el conjunto de acciones
necesarias para la transferencia de un conjunto de datos (es decir, una
transferencia completa de datos). Para la realizacin de una operacin
de
E/S
se
deben
efectuar
las
siguientes
funciones:
- 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.
Dispositivos externos
Una de las funciones bsicas del ordenador es comunicarse con los
dispositivos exteriores, es decir, el ordenador debe ser capaz de enviar y
recibir datos desde estos dispositivo. Sin esta funcin, el ordenador no
sera operativo porque sus clculos no seran visibles desde el exterior.
Existe una gran variedad de dispositivos que pueden comunicarse con
un ordenador, desde los dispositivos clsicos (terminales, impresoras,
discos, cintas, etc.) hasta convertidores A/D y D/A para aplicaciones
de medida y control de procesos, De todos los posibles perifricos,
algunos son de lectura, otros de escritura y otros de lectura y escritura
(es importante resaltar que este hecho siempre se mira desde el punto
de vista del proceso). Por otra parte, existen perifricos de
almacenamiento tambin llamados memorias auxiliares o masivas.
La mayora de los perifricos estn compuestos por una parte mecnica
y otra parte electrnica. Estas partes suelen separarse claramente para

dar una mayor modularidad. A la componente electrnica del perifrico


se le suele denominar controlador del dispositivo o, tambin, adaptador
del dispositivo. Si el dispositivo no tiene parte mecnica (como, por
ejemplo, la pantalla de un terminal), el controlador estar formado por
la parte digital del circuito. Frecuentemente los controladores de los
dispositivos estn alojados en una placa de circuito impreso diferenciada
del resto del perifrico. En este caso es bastante habitual que un mismo
controlador pueda dar servicio a dispositivos de caractersticas similares.
El principal problema planteado por los perifricos es su gran variedad
que tambin afecta a las velocidades de transmisin. Por tanto, el
mayor inconveniente que encontramos en los perifricos es la diferencia
entre sus velocidades de transmisin y la diferencia entre stas y la
velocidad de operacin del ordenador.

También podría gustarte