Está en la página 1de 11

Sntesis de informacion recopilada

Unidad 2
Osmar Dallan Perez Estrada
Instituto Tecnologico de Tuxtla Gutierrez

blue viper94@hotmail.com

I. Introducci
on
Hablar de lenguaje ensamblador es hablar
de un programa convertidor, este convierte
un determinado codigo a otro tipo de
codigo. Estos tipos de codigo es lo que
unicamente son distinguidos por la computadora ya que esta interpreta los datos
binarios (lenguaje maquina) para manipular las partes fsicas de estas. Como la
computadora solo distingue datos binarios,
se necesita el ensamblador del que antes se
ha hablado para realizar la programacion
basica para manipular cualquier dispositivo
o periferico que se desee de la computadora.
El contenido de la presente sntesis cuenta
con informacion de la segunda unidad de la
materia de Lenguajes de Interfaz enfocada
en la Programacion basica del lenguaje
ensamblador, abordando temas como, ciclos numericos, ciclos condicionales, saltos,
manipulacion de pilas entre otros. Todo lo
mencionado anteriormente es parte de la
programacion basica y esencial del lenguaje
ensamblador, para asi poder hacer uso de
los recursos fsicos con los que cuenta la
computadora o algun otro dispositivo.

escrito en lenguaje ensamblador, toma


cada uno de los codigos nemotecnicos y
los sustituye por su codigo de operacion
correspondiente en codigo binario para la
plataforma que se eligio como destino en
las opciones especficas del ensamblador,
es decir con la instruccion correspondiente
para trabajar sobre el determinado dispositivo o periferico elegdo.
Para poder obtener el denominado programa ejecutable se necesita de un
programa que enlaze todos los modulos
objetos resultantes para asi poder formar
el modulo de carga para posteriormente
ejecutar el programa, para poder realizar
este procedimiento se utiliza un programa
llamado ligador o linker. Ademas de dar
como salida el modulo de carga, el linker
imprime un mapa de memoria que indica
donde seran cargados los modulos objeto
en memoria. Despues de crearse el modulo
de carga, este es cargado por el cargador
en la memoria del ordenador y comienza la
ejecucion.

II. Desarrollo
A. Ensamblador y ligador a utiizar
Un ensamblador es el programa que convierte un listado de codigo fuente que esta
escrito en un fichero de texto al codigo
Figura 1ejemplo del proceso del
objeto, es decir al lenguaje maquina,
ensamblado y ligado
que el computador, microprocesador o
microcontrolador distinguira ya que estos
distinguen los datos de tipo binario y
pueden interpretarlo y hacer uso de ello.
Para poder realizar el codigo ensamblador
Para ello el ensamblador lee el archivo hay que tomar algunas caractersticas en
1

cuenta para que el codigo resulte de buena


forma y logre su objetivo especfico para
cada arquitectura legible por el programador.
Algunas de las caractersticas a considerar
son que, el codigo en lenguaje ensamblador
posee cierta dificultad de ser entendido
ya que su estructura se acerca al lenguaje
maquina, es decir, es un lenguaje de bajo
nivel. Tambien que con el lenguaje ensamblador se tiene un control muy preciso de
las tareas realizadas por un microprocesador por lo que se pueden crear segmentos
de codigos dificiles y muy ineficientes de
programar en un lenguaje de alto nivel, ya
que, entre otras cosas mas, en el lenguaje
ensamblador se dispone de instrucciones del
CPU que generalmente no estan disponibles
en los lenguajes de alto nivel.

programas. Como sabemos un bucle es


un bloque de codigo que se ejecuta varias
veces.
Existen cuatro tipos de bucles
basicos que son, los Bucles sin fin, los
Bucles por conteo, los Bucles hasta y los
Bucles mientras.
Las instrucciones de
control con las que los bucles trabajan son:

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

B. Ciclos Numericos
Dentro del lenguaje ensamblador existen
muchos tipos de ciclos o bucles, que se
puede elegir dependiendo de lo que se
requiera y como se requiera es decir que en
veces se necesita una instruccion poderosa
por que el codigo lo necesita o bien una
instruccion menor que no requiere de gran
exigencia. Por ejemplo si se necesita una
instruccion poderosa el lenguaje ensamblador cuenta con una que permite la
programacion de ciclos infinitos, esa es la
instruccion LOOP. Un bucle es un grupo de
instrucciones que se ejecutan cclicamente
un n
umero concreto de veces.

C. Captura basica de cadenas


Dentro de los lenguajes de alto nivel existen
las instrucciones definidas para las cadenas
que son los strings, a diferencia de estos
en el lenguaje ensamblador no lo esta,
pero si se puede realizar. Para fines de
programacion, una cadena es definida como
un conjunto de localidades de memoria
consecutivas que se reservan bajo el nombre
de una variable.
Para el manejo de cadenas el lenguaje
ensamblador cuenta con las siguientes
instrucciones:

MOVS: mueve un byte o palabra desde


una localidad de memoria a otra.
LODS: carga desde la memoria un byte
en AL o una palabra en AX.
Figura 2 Sintaxis de la instruccion LOOP
STOS: almacena el contenido del registro AL o AX en la memoria.
Dentro del lenguaje ensamblador tambien
existen otras instrucciones mas elementales
que posibilitan el control de nuestros

CMPS: Compara localidades de memoria de un byte o palabra.


2

SCAS: Compara el contenido de AL las banderas de signo SF, de cero ZF y


o AX con el contenido de alguna de acarreo CF.
localidad de memoria.

Las instrucciones para cadenas trabajan


en conjunto con la instruccion CLD, la
cual permite establecer que el sentido en
el que las cadenas seran procesadas seran
de izquierda a derecha. Tambien se utiliza
otra instruccion importante como lo es el
prefijo de repeticion REP, esto permite que
una instruccion para manejo de cadenas
pueda ser repetida un n
umero determinado
de veces.
los registros ndice juegan un papel importante en el procesamiento de cadenas
de datos, el par de registros CS:SI indican
la direccion de la cadena original que sera
procesada, y el par ES:DI contiene la
direccion donde llas cadenas pueden ser
almacenadas.

Figura 4. Ejemplo de instruccion CMP

La instruccion TEST, por otra parte


realiza la operacion AND de los operandos especificados sin que el resultado se
almacene en alg
un registro, modificando
u
nicamente ciertas banderas. Su aplicacion
mas com
un es la de probar si algun bit es
cero.

Figura 5. Ejemplo de instruccion TEST

Dentro de la programacion estas dos instrucciones por lo general van seguidas de


alguna de las instrucciones de salto las
cuales se explican a continuacion.

E. Saltos
El lenguaje ensamblador proporciona un
conjunto de instrucciones conocidas como
instrucciones de salto. Estas instrucciones
son utilizadas en conjunto con instrucciones
de comparacion y prueba para determinar
el flujo del programa.
En muchos lenguajes de alto nivel los
programadores pueden controlar el flujo de
los programas por medio de instrucciones
condicionales compuestas. Por contra el
lenguaje ensamblador no proporciona tales
mecanismos.
Estos tipos de decisiones
se realizan por medio de una serie de
instrucciones que van teniendo un significado consecutivo, es decir, el efecto de la
instruccion siguiente depende del resultado
anterior.

Figura 3. Ejemplo de la implementacion de


cadenas

D. Comparacion y prueba
Dentro de la programacion existen dos
instrucciones que ayudan a la comparacion
y a la verificacion de valores, estos son
el CMP y TEST. CMP que se utiliza
para comparar, realiza una comparacion
si dos valores son iguales o diferentes. Su
funcinamiento es similar a la instruccion
SUB que es restar, solo que no modifica el
operando de destino, solamente modifica
3

Existen muchas formas para realizar los


saltos en lenguaje ensamblador con diferentes condiciones que tiene que cumplir
la instruccion anterior para que se pueda
realizar el salto de forma correcta, algunos
de estos son los siguientes:

F. Ciclos condicionales
Los ciclos condicionales son saltos que
crean un bucle bajo la confirmacion de si ha
ocurrido alguna situacion, es decir que las
instrucciones de salto condicional, revisan
si ha ocurrido alguna situacion para poder
transferir el control del programa a otra
seccion.

JMP: salta
JE, JZ: salta si es igual a cero.
JNE, JNZ: salta si no es igual a cero.
JS: salta si tiene signo negativo.
Figura 6. Ejemplo de instruccion de un
ciclo condicional

JNS: salta si no tiene signo negativo.


JP, JPE: salta si es paridad par.

En este ejemplo, la instruccion JE-salta si


es igual-, revisa si la prueba implcita en
la instruccion anterior resulto positiva, es
JO: salta si hay capacidad excedida.
decir, si la comparacion de AX con 0 es
cierta. En caso de que AX sea igual a 0,
JNO: salta si no hay capacidad exceJE transfiere el control del programa a las
dida.
instrucciones que se encuentran despues de
la etiqueta otro, en caso contrario ejecuta
JB, JNAE: salta si esta por abajo -no
las instrucciones siguientes a JE.
encima o igual-.
Lista de algunos saltos condicionales mas
JNB, JAE: salta si no esta por abajo comunmente usadas:
-encima o igual-.

JNP, JOP: salta si es paridad impar.

JA, JNBE: salta si esta arriba o salta si


no esta por debajo o si no es igual. El
salto se efect
ua si la bandera de CF=0
o si la bandera ZF=0.

JBE, JNA: salta si esta por abajo o


igual -no encima-.
JNBE, JA: salta si no esta por abajo o
igual -encima-.

JAE, JNB: salta si esta arriba o es igual


o salta si no esta por debajo. El salto
se efect
ua si CF=0.

JL, JNGE: salta si es menor que -no


mayor o igual-.

JB, JNAE: salta si esta por debajo o


es igual o salta si no esta por debajo.
El salto se efect
ua si CF=1.

JNL, JGE: salta si no es menor que mayor o igual-.


JLE, JNG: salta si es menor que o igual
-no mayor-.

G. Incremento y Decremento
JNLE, JG: salta si no es menor que o En ocaciones necesitamos incrementar
algun valor de un registro o decrementarlo
igual -mayor-.
segun se le necesite, en el lenguaje ensamblador se utilizan dos instrucciones que
4

CLD poner a 0 el indicador de direccion

realizan lo anterior. Estas dos instrucciones


son INC y DEC, incremento y decremento
respectivamente. Las instrucciones INC y
DEC permiten incrementar o decrementar
los contenidos de los registros y de las
variables almacenadas en memoria.

STD poner a 1 el indicador de direccion.

I. Instrucciones aritmeticas
Las instrucciones aritmeticas son muchas
apesar de que solo son 8 instrucciones
basicas, debido a que cada uno tiene mas
elemntos en sus grupo, es decir que las
operaciones se pueden realizar dependiendo
Figura 7 ejemplo de modo de operacion de
del valor que se tiene. Las 8 instrucciones
INC y DEC
basicas son: ADD (suma), SUB (resta),
MUL (multiplicacion sin signo), DIV
(division sin signo), IMUL (multiplicacion
con signo), IDIV (division con signo), INC
(incremento unitario),DEC (decremento
unitario).
Por otra parte las instrucciones ADD y
H. Captura de Cadenas con formato
SUB permiten realizar sumas y restas
Las instrucciones para trabajar sobre cadesencillas y tienen el siguiente formato:
nas permiten el movimiento, comparacion
a.- ADD destino,fuente.
y b
usqueda rapida en bloques de datos.
b.- SUB destino, fuente.
Las instrucciones que permiten manejar las
cadenas con formato son:
MOVC: transferir caracter de una cadena.
MOVW transferir palabra de una cadena

Figura 8 Ejemplo de operadores ADD y


SUB

CMPC comparar caracter de una cadena


CMPW comparar palabra de una ca- En las operaciones de suma y resta el
resultado simepre es almacenado en el
dena
operando de destino, el cual puede ser un
SCAC buscar caracter de una cadena registro o una variable.
Como se menciono antes las instrucciones
SCAW buscar palabra de una cadena aritmeticas tienen grupos que realizan algunas operaciones especiales, estos grupos
LODC cargar caracter de una cadena se dividen en:
LODW cargar palabra de una cadena

Grupo de adici
on:

STOC guardar caracter de una cadena


STOW guardar palabra de una cadena

ADD: suma

REP repetir

ADC suma con acarreo


5

AAA ajuste ASCII para la suma

POP operando
Cuando se ejecuta la instruccion Push, el
contenido del operando se almacena en la
u
ltima pocision de la pila.
Por ejemplo: Si AX se carga previamente
con el valor 5, una instruccion Push AX almacenaria el valor 5 en la ultima posicion
de la pila.
Por otro lado la instruccion POP saca el
u
ltimo dato almacenado en la pila y lo
coloca en el operando.
Siguiendo el ejemplo anterior, la instruccion
POP BX obtendra el n
umero 5 y lo almacenara en el registro BX.
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):

DAA: ajuste decimal para la suma


Grupo de sustracci
on
SUB: resta
SBB: resta con acarreo negativo
AAS: ajuste ASCII para la resta
DAS: ajuste decimal para la resta
Grupo de Multiplicaci
on
MUL: multiplicacion
IMUL: multiplicacion entera

PUSH: introducir

AAM: ajuste ASCII para la multiplicacion

POP: extraer
PUSHF: introducir indicadores

Grupo de Divisi
on

POPF: extraer indicadores


K. Obtencion de cadena con representacion decimal
Instrucciones de Desplazamiento Lineal

DIV: division
IDIV: division entera
AAD: ajuste ASCII para la division

Para realizar este tipo de desplazamiento


sobre una cadena se utilizan las instrucciones: SAL y SHL que sirven para el
Desplazamiento aritmetico a la izquierda.
la sintaxis a utilizar con estas dos instrucciones son: SAL/SHL destino, contador.
indicador

Grupo de Conversiones
CBW: pasar octeto a palabra
CWD: pasar palabra a doble palabra
NEG negacion
J. Manipulacion de la Pila
La pila es un grupo de localidades de memoria que se reservan con la finalidad de
proporcionar un espacio para el almacenamiento temporal de informacion. La pila
de los programas es del tipo LIFO. Para controlar la pila el microprocesador cuenta con
dos instrucciones basicas: PUSH (meter) y
POP (sacar).
El formato de estas instrucciones es el siguiente:
PUSH operando

Figura 9 indicador de la instruccion


SAL/SHL

Desplaza a la izquierda los bits del operando


el n
umero de bits especificado en el segundo
operando que debe ser CL si es mayor que
1 los bits desplazados.
6

ceros y los ceros por unos.


La principal aplicacion de estas instrucciiones es el enmascaramiento de informacion.
La operacion AND nos permite poner a
cero cualquier bit de un dato; la operacion
OR nos permite poner a cero cualquier bit
Figura 10 Desplazamiento a la izquierda de de un dato y la operacion XOR permite
bits
borrar el contenido de alg
un registro o
localidad de memoria, as como para negar
alg
un bit.
SAR (desplazamiento aritm
etico a
la derecha)
M. Desplazamiento y rotacion
Sintaxis:
SAR destino, contador
Las instrucciones de desplazamiento y
indicadores
rotacion son tambien conocidas como instrucciones para corrimientos y permiten la
manipulacion de las pocisiones individuales
de los bits dentro de un registro o localidad
de memoria.
Figura 11 Indicador de la instruccion SAR Las instrucciones para rotacion son cuatro
y nos permiten mover de forma cclica los
bits que forman parte de un registro o
Desplaza a la derecha los bits del operando localidad de memoria, estas instrucciones
destino el n
umero de bits especificado en el son: ROL, ROR, RCL Y RCR. ROL y
segundo operando. Los bits de la izquierda ROR funcionan de forma muy semejante;
se rellenan con el bit de signo del primer al ejecutar una instruccion ROL, el bit mas
operando. Si el n
umero de bits a desplazar significativo del dato es desplazado hacia
es 1 se puede especificar directamente, la bandera de acarrero y tambien hacia la
si es mayor se especifica a traves de CL. pocision del bit menos significativo, por lo
cual todos los bits restantes son rotados o
Ejemplo:
movidos hacia la izquierda. La instruccion
SAR AX, CL
ROR funciona igual, solo que esta trabaja
SAR BP,1
hacia la derecha.
Las instrucciones RCL y RCR permiten
la rotacion de los bits de una localidad de
L.Instrucciones logicas
En el lenguaje ensamblador se cuenta memoria o registro, considerando tambien
con un grupo de instrucciones logicas que el contenido de la bandera de acarreo. En
operan a nivel de bits, estas instrucciones el caso de RCL, el bit mas significativo pasa
hacia la bandera de acarreo, el bit que se
son: AND, OR, XOR y NOT.
Las instrucciones que se enlistan antes encontraba en la bandera de acarreo pasa al
requieren dos operandos, a excepcion de la bit menos significativo y finalmente los bits
restantes son rotados hacia la izquierda.
operacion NOT que solo requiere uno.
La operacion OR establece el resultado a 1 La instruccion RCR funciona igual, pero
si cualquiera de los dos operandos es 1, de aplica su rotacion hacia la derecha.
N. Obtencion de una cadena con la reprelo contrario el resultado sera 0.
La instruccion XOR coloca en 0 el resultado sentacion hexadecimal
si los operandos son iguales, de lo contrario
establece un 1.
Para la obtencion de las cadenas con repLa instruccion NOT cambia de estado resentacion hexadecimal se pueden usar distodos los bits del operando, los unos por tintas instrucciones, algunas de estas son:
7

e.- WAIT (Espera)

Procesos de Control
a.-NOP (operacion nula)

Sintaxis:
WAIT

Sintaxis:
NOP

Provoca la espera del procesador hasta


que se detecta una se
nal en la patilla
Realiza una operacion nula, es decir, TEST. Ocurre, por ejemplo, cuando el
el microprocesador decodifica la instruccion coprocesador ha terminado una operacion e
y pasa a la siguiente.
indica su finalizacion. Suele preceder a ESC
para sincronizar las acciones del procesador
y coprocesador.
b.- ESC (Salida a un coprocesador)
Sintaxis:
ESC codigoo peraci
on, origen

f.- XLAT (traduccion)


Sintaxis:
XLAT tabla

Ejemplo :
ESC21, AX

La instruccion XLAT tabla carga en


el registro AL el contenido de la posicion
c.- HLT (Parada hasta interrupcion o [BX][AL], en donde el registro BX ha de
apuntar al comienzo de una tabla. Dicho
reset)
de otra manera, AL hace de ndice de la
Sintaxis:
tabla y de almacen destino del contenido
HLT
de la tabla.
El procesador se detiene hasta que se
restaura el sistema o se recibe una interrupcion. 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 metodo no es preciso y puede fallar con
ciertos controladores de memoria.
Figura 12 Ejemplo de la instruccion XLAT
en un programa

d.- LOCK (bloquea los buses)


Sintaxis:
LOCK

En el Programa anterior el proposito es


que al final el contenido de AL sea 16 ya
Es una instruccion que se utiliza en que es el quinto elemento de la tabla y AL
aplicaciones de recursos compartidos para antes de XLAT TABLA contena el valor 5.
asegurar que no accede simultaneamente a
LEA (cargar direccion efectiva)
la memoria mas de un procesador. Cuando
una instruccion va precedida por LOCK, Sintaxis:
el procesador bloquea inmediatamente el LEA destino, origen
bus, introduciendo una se
nal por la patilla Transfiere el desplazamiento del operando
fuente al operando destino. Otras instrucLOCK.
ciones pueden a continuacion utilizar el
8

registro como desplazamiento para acceder tope de la pila.


a los datos que constituyen el objetivo. El
operando destino no puede ser un registro
A diferencia de una pila creciendo hacia
de segmento. En general, esta instruccion arriba, en las maquinas Intel crecen hacia
es equivalente a MOV destino, OFFSET abajo.
fuentey de hecho los buenos ensambladores
(TASM) la codifican como MOV para economizar un byte de memoria. Sin embargo,
LEA es en algunos casos mas 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
Figura 14 Ejemplo de almacenamiento en
mas el registro SI. Esa sola instruccion es
una pila 2
equivalente a estas dos:
MOV DX, OFFSET DATOS
ADD DX, SI
En la Figura de arriba muestra las capas
de la pila despues de la ejecucion pushl 15.
O. Captura y almacenamiento de datos
El puntero de la pila es decrementado
numericos
de cuatro en cuatro y el n
umero 15 es
almacenando como lugares de 4 bytes,
El almacenamiento de los datos 1988, 1989, 1990 y 1991.
numericos se realizan en Bloques en La instruccion popl eax copia el valor del
ensamblador, para eso se necesita saber con tope de la pila(4 bytes) a eax e incrementa
exactitud las caracteristicas de la memoria. esp en 4.Que sucede si no quieres copiar
Modelos de memoria. Los modelos de el valor del tope de la pila a un registro?.
memoria constituyen las diversas maneras Puedes ejecutar la instruccion addl 4, esp
de acceder a la memoria por parte de los el cual simplemente incrementa el puntero
compiladores.
de la pila.
Usando la pila Una seccion 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
direccion del tope de la pila.

Figura 15 Ejemplo de instruccion de una


pila

Figura 13 Ejemplo de almacenamiento en


una pila

En Listing 3, la instruccion call foo pone


la direccion de la instruccion despues 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
instruccion cuya direccion se toma desde el
tope de la pila. Obviamente el tope de la
pila debe contener una direccion valida.

La figura de arriba muestra 3 valores


enteros, 49, 30 y 72, almacenados en la
pila(cada entero ocupando 4 bytes) con el
registro esp apuntando a la direccion del
9

Recuento de las unidades de informacion transferidas (normalmente


bytes) para reconocer el fin de operacion.

P. Operaciones basicas sobre archivos de


disco
Las operaciones basicas sobre los archivos
disco para las funciones de E/S deben
cumplir con lo siguiente:

Sincronizacion de velocidad entre la


CPU y el periferico.

Direccionamiento o seleccion del dispositivo que debe llevar a cabo la operacion de E/S.

Deteccion de errores (e incluso correccion) mediante la utilizacion de los


codigos necesarios (bits de paridad,
codigos de redundancia cclica, etc.)

Transferencia de los datos entre el


procesador y el dispositivo (en uno u
otro sentido).

Almacenamiento temporal de la informacion. Es mas eficiente utilizar un


buffer temporal especfico para las operaciones de E/S que utilizan el area de
datos del programa.

Sincronizacion y coordinacion de las


operaciones.
Esta u
ltima funcion es necesaria debido
a la deferencia de velocidades entre los
dispositivos y la CPU y a la independencia
que debe existir entre los perifericos y la
CPU (por ejemplo, suelen tener relojes
diferentes).
Se define una transferencia elemental de
informacion como la transmision de una
sola unidad de informacion (normalmente
un byte) entre el procesador y el periferico
o viceversa. Para efectuar una transferencia
elemental de informacion son precisas las
siguientes funciones:
Establecimiento de una comunicacion
fsica entre el procesador y el periferico
para la transmision de la unidad de informacion.
Control de los perifericos, en que se
incluyen operaciones como prueba y
modificacion del estado del periferico.
Para realizar estas funciones la CPU
gestionara las lneas de control necesarias.
Definiremos una operacion 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 realizacion de una operacion de E/S
se deben efectuar las siguientes funciones:

Conversion de codigos,
serie/paralelo, etc.

conversion

Una de las funciones basicas 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 funcion, el ordenador
no sera operativo porque sus calculos no
seran visibles desde el exterior. Existe
una gran variedad de dispositivos que
pueden comunicarse con un ordenador,
desde los dispositivos clasicos (terminales,
impresoras, discos, cintas, etc.)
hasta
convertidores A/D y D/A para aplicaciones
de medida y control de procesos, De todos
los posibles perifericos, 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
perifericos de almacenamiento tambien
llamados memorias auxiliares o masivas.
La mayora de los perifericos estan compuestos por una parte mecanica y otra parte
electronica. Estas partes suelen separarse
claramente para dar una mayor modularidad. A la componente electronica del
periferico se le suele denominar controlador
del dispositivo o, tambien, adaptador del
dispositivo. Si el dispositivo no tiene parte

10

mecanica (como, por ejemplo, la pantalla


de un terminal), el controlador estara
formado por la parte digital del circuito.
Frecuentemente los controladores de los
dispositivos estan alojados en una placa
de circuito impreso diferenciada del resto
del periferico. En este caso es bastante
habitual que un mismo controlador pueda
dar servicio a dispositivos de caractersticas
similares. El principal problema planteado
por los perifericos es su gran variedad
que tambien afecta a las velocidades de
transmision. Por tanto, el mayor inconveniente que encontramos en los perifericos
es la diferencia entre sus velocidades de
transmision y la diferencia entre estas y la
velocidad de operacion del ordenador.

III. Conclusi
on
Hoy en dia el lenguaje ensamblador representa la base de todo proceso puesto que
todo microprocesador y microcontrolador
usa este lenguaje. La programacion basica
tal y como su nombre lo dice, es sumamente
indispensable, las instrucciones utilizadas
son las que casualmente se utilizan ya
que su funcion es primordial o es una
instruccion de base, como los que actuan
sobre la memoria, cambian, aumentan o
disminuyen algun valor de un registro o
localidad de la memoria, que son los que
usualmente utilizan los programadores
ya que para realizar cualquier tipo de
operacion se debe trabajar con la memoria,
como por ejemplo la instruccion MOV,
cuyo proposito es la transferencia de datos
entre los registros de procesador o registros
y memoria y que es una instruccion de
lenguaje ensamblador que se encuentra
en la mayoria de los procesadores, tales
como, los procesadores Intel pentium, amd
y sparc entre otros, debido a esto, esta
instruccion y muchos otros, a la practica,
son instrucciones de ensamblador basicas y
esenciales en cualquier proceso. El lenguaje
ensamblador es muy amplio y en su caso,
complejo, pero el estudio adecuado de estas
instrucciones basicas y su programacion
basica nos podran permitir adentrarnos un

poco mas y con eficiencia a la programacion


del lenguaje ensamblador.

IV. Referencias
1.- Canal, Ramon; Elias, Eduard;
Gonzalez, Jose; Marcuello, Pedro; Molina,
Carlos, Pe
na, M.A.; Valero, Miguel.
Estructura y Dise
no de Computadores.
Barcelona, 2000. Reverte. ISBN: 84-2912619-8.
2.- Apuntes de Modos de Direccionamiento.
Departamento de Informatica, Universidad de Valladolid.
www.infor.uva.es/ bastida/OC/modos.pdf
3.- Garca, Manuel; Lopez, Jose. Apuntes
de Organizacion de Computadoras. Ediciones de la Universidad de Oviedo. 2007.
ISBN: 978-84-8317-606-1. [6] Tanenbaum,
Andrew S. Sistemas Operativos Modernos; Segunda Edicion.Pearson Educaci
on.
Mexico, 2003. ISBN: 970-26-0315-3. Pag:
976.
4.- Ivan Perez, Lenguaje Y Compiladores,
2005, Primera Edicion, pp.13.
5.- Irv Englander, Arquitectura Computacional, Mexico 2002, Primera Edici
on,
pp.233-240.

11

También podría gustarte