Documente Academic
Documente Profesional
Documente Cultură
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
PROGRAMACION EN ASSEMBLER
EL REPERTORIO DE INSTRUCCIONES
Un microprocesador interpreta y ejecuta un repertorio de instrucciones denominado
instrucciones de maquina, estas instrucciones escritas sobre un editor en lenguaje
nomnico deben ser traducidas (compiladas) a cdigo binario ya que un
microprocesador solo entiende el cdigo binario.
El juego de instrucciones es diseado por el fabricante de microprocesadores y debe
cumplir unas caractersticas generales como las siguientes:
. !as instrucciones reali"an una funcin #nica y sencilla, por lo que su
descodificacin por la $%U es sencilla
&. Una misma instruccin utili"a siempre un numero fijo de operandos y
diferentes instrucciones pueden tener un numero distinto de operandos
'. !a codificacin de la instruccin es sistem(tica, puesto que facilita su
descodificacin
). !as instrucciones son autocontenidas e independientes, es decir que
contienen toda la informacin necesaria para ejecutarse. *eben e+presar: el
tipo de operacin a reali"ar, el ,alor o la posicin de los operandos, el lugar
donde se depositara el resultado y la ubicacin de la siguiente instruccin
!os bits de una instruccin binaria se di,ide en grupos llamados campos
Un campo para el cdigo de operacin que especifica la operacin que se
reali"ara
Un campo de referencia a los operandos que designa el ,alor del operando
o una direccin de la memoria o un cdigo para elegir un registro del
procesador que contiene al operando
Un campo de modo que especifica la forma en que se interpretara el campo
de direccin
Programacion Assembler Teoria Ingenieria en Sistemas de
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
!as instrucciones se pueden agrupar en tres categoras seg#n el tipo de accin que
reali"an. En la siguiente tabla se muestran estas categoras y se mencionan algunas
instrucciones de cada grupo ( cabe recordar que estas instrucciones no son
uni,ersales y su escritura y funcin dependen del microprocesador )
-./01U$$-2.E/ *E
013./4E1E.$-3 *E
*302/
lle,an datos de un lugar a otro de la
computadora sin alterar su
contenido
$arga !*
3lmacenamiento /0
5o,imiento 526E
-ntercambio 7$8
-ntroduccion %U/8
*escarga %2%
Entrada -.
/alida 2U0
-./01U$$-2.E/ *E
53.-%U!3$-9. *E
*302/
ARITMTICAS :
las cuatro operaciones aritm:ticas
b(sicas
-ncremento -.$
*ecremento *E$
/uma 3**
1esta /U;
5ultiplicacin 5U!
*i,ision *-6
LGICAS Y DE MANIPULACIN
DE BIT :
operaciones binarias con bits o
cadena de bits
%oner en cero $!1
-niciali"ar /E0
$omplemento $25
3.* 3.*
21 21
$orrimiendo a la
derec<a
/81
$orrimiento a la
i"quierda
/8!
-./01U$$-2.E/ *E
$2.012! *E
%12=1353
$ambia el contenido del Contador
de Programa, alterando el flujo de
control
;ifurcacin ;1
/alto >5%
!lamada a subrutina $3!!
1egreso de subrutina 1E0
$omparacion $5%
;ifurcar si es cero ;?
;ifurcar si no es cero ;.?
;ifurcar si <ay acarreo ;$
;ifurcar si es mayor ;8
MODOS DE DIRECCIONAMIENTO
!a operacin indicada en el cdigo de operacin de la instruccin se deber( reali"ar
con datos almacenados en registros o en memoria, la forma en que se escogen los
operandos depende del modo de direccionamiento de la instruccin.
3 continuacin se anali"an los modos de direccionamiento que utili"an los
microprocesadores
Programacion Assembler Teoria Ingenieria en Sistemas de
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
1. Modo Implcio: el operando aparece implcitamente en el cdigo de operacin
$25 3 3 (complementar el acumulador)
!. Modo I"m#di$o: el operando se especifica en la instruccin misma
!*3 @.;1 3 .;1 (cargar el acumulador con un numero)
%. Modo d# &#'i(&o: el operando se encuentra en un registro, el nombre del registro
se indica en la instruccin
!*3 1 3 1 (cargar el accumulador con el contenido de 1)
). Modo I"di&#co d# &#'i(&o(: el operando se encuentra en la memoria, la
direccin de memoria esta en el registro que se indica en la instruccin
!*3 (1) 3 5A1B (cargar el accumulador con el contenido de la
memoria en la direccin indicada por 1)
*. Modo di&#co: el campo de direccin de la instruccin seala la posicin del
operando en la memoria
!*3 3*1/ 3 5A3*1/B (cargar el acumulador con el contenido de
la memoria en la posicin 3*1/)
+. Modo i"di&#co: el campo de direcciones de la instruccin seala la direccin
donde esta la ,erdadera direccin del operando
!*3 (3*1/) 3 5A5A3*1/BB (cargar el acumulador con el contenido
de la memoria en la posicin
5A3*1/B)
,. Modo &#l$i-o: el operando se encuentra en la memoria, la direccin de memoria
efecti,a se obtiene como resultado de sumar al contador de programa un dato
num:rico aportado por la instruccin
!*3 C3*1/ 3 5A%$ D 3*1/B (cargar el accumulador con el
contenido de la memoria en la
direccin resultante de sumar el
contenido del %$ con el dato
3*1/)
.. Modo i"d#/$do: similar al anterior pero reempla"ando el %$ por un registro ndice
!*3 C3*1/ (1) 3 5A1 D 3*1/B
!os programas utili"an normalmente ,arios modos de direccionamiento que facilitan:
a) El a<orro de espacio: 5ientras mas cortas sean las instrucciones
menos espacio de almacenamiento necesitaran los programas y menos
bits se tendr(n que leer de la memoria para ejecutarlas
Programacion Assembler Teoria Ingenieria en Sistemas de
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
b) !a generacin de cdigo reubicable: es deseable que un programa
pueda ser cargado en diferentes "onas de memoria
c) El manejo de estructura de datos: El manejo de estructuras de datos
tales como tablas, colas, pilas, etc facilitan o simplifican el
direccionamiento de datos
0ORMATO DE LAS INSTRUCCIONES
*iferentes procesadores tienen diferentes formatos de instrucciones, ese es un
aspecto que da a cada procesador su caracterstica de <ardEare especial y define su
rique"a y fle+ibilidad.
El formato de la instruccin indica los campos y el tamao de los mismos para cada
instruccin. En el diseo del formato de las instrucciones la primera decisin a
considerar es el tamao de las instrucciones. %ara tomar esa decisin se consideran
los siguientes aspectos:
El tamao de la memoria
!a organi"acin de la memoria
!a estructura de buses
!a complejidad de la $%U y su ,elocidad
!as caractersticas generales que deben reunir los formatos de instrucciones son:
. *ebe e+istir uno o pocos formatos de instrucciones, cuando menos formatos
e+istan mas simple ser( la descodificacin y por ende la unidad de control que
se encarga de esta tarea
&. !os formatos son sistem(ticos. !os campos del mismo tipo tienen la misma
longitud y deben ocupar la misma posicin dentro de la instruccin
'. %ara acortar el tamao se emplean las t:cnicas de direccionamiento implcito.
3si e+ceptuando las instrucciones de bifurcacin no e+iste campo de
instruccin siguiente.
). !os tamaos de los formatos encajan f(cilmente en la palabra del computador.
!o mas corriente es que el formato ocupe una palabra, pero tambi:n son
frecuentes los formatos de media ( F ), una y media ( F ) y de dos ( &)
palabras.
Programacion Assembler Teoria Ingenieria en Sistemas de
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
G. $uando se tienen ,arios formatos el cdigo de operacin diferencia entre ellos
H. !os tamaos de los campos que e+presan direcciones, ya sean de registros o
de memoria principal, deben corresponder a los mapas de memoria de
direccionamiento del procesador.
/e ilustra un formato de instrucciones de un procesador de H bits di,idido en cuatro
campos generales
&
Tipo
H
C1di'o d# op#&$ci1"
)
R#'.2modo
)
&#'i(&o
El campo Cdigo de Operacin especifica la operacin que se reali"a. 8ay tantos
cdigos de operacin como instrucciones diferentes que posea el microprocesador.
El numero de instrucciones que posea ,endr( limitado por la longitud de este campo.
El cdigo de operacin implica normalmente el tipo de operando, por ello se emplean
normalmente distintos cdigos de operacin para diferenciar una misma instruccin
con diferentes tipos de datos.
El campo de direccin (aqu formado por dos subcampos) puede contener ,arias
di,isiones para identificar las posiciones de memoria o los registros internos del
microprocesador donde se encuentran los operandos.
El campo tipo de dos bits determina la e+istencia de cuatro tipos diferentes de
instrucciones
Tipo 0 : Registro Registro
3qu a los operandos se accede a tra,es de registros internos del microprocesador,
estos registros pueden contener el operando (directo) o la direccin donde se
encuentra el operando (indirecto)
G ) ' I J H ) ' & K
K K $digo de 2peracin /- /1$ *- */0
0ipo K: registro L registro
0ipo : 5emoria L
registro
0ipo &: ;ifurcacin
0ipo ': -mplcito
0 = DIRECTO
1 = INDIRECTO
REGISTRO
FUENTE
REGISTRO
DESTINO
0 = DIRECTO
1 = INDIRECTO
Direccin
Programacion Assembler Teoria Ingenieria en Sistemas de
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
Ejemplos:
Tipo 1 : Memoria Registro
Este tipo de instrucciones permite una amplia forma de acceder a los operandos que
podran ser dos o uno solo. En el caso de un solo operando este puede direccionarse
a tra,es de M o a tr,as de un registro interno del procesador
G ) ' I J H G ) ' & K
K $digo de 2peracin /* 52* - 1E=
*ireccin de bifurcacin (M)
Ejemplos:
Tipo 2 : Bifurcacion
El campo M contiene la direccion de salto del programa
CDIGO
HEXAD.
SI DI CDIGO
OPERACIN
OPERNDOS OPERACIN
0952 0 0 ADD R5, R2 R2 R2 + R5
095A 0 1 ADD R5, (R2) M[R2] M[R2] + R5
09D2 1 0 ADD (R5), R2 R2 R2 + M[R5]
CDIGO
HEXAD.
SD MOD MODO CDIGO
OPERACIN
OPERNDOS OPERACIN
4902 00 00 Directo ADD W, R2 R2 R2 + M[W]
53C2 11 XX Registro !R R2 R2 R2 + 1
03#"# 2 d#(i"o
KK N & 2per. 4te: palabra de memoria
*est.: registro
K N & 2per. 4te: registro
*est: palab. de memoria
K N 2perand. Especificado por M
y el campo 52*
N 2perand especif. por 1E= e -
(.o se usa M)
MODO DE DIRECC. DE 4
KK N 5odo de direccin directa
K N 5odo inmediato
K N 1elati,o al modo de %$
N 5odo de ndice
0 = DIRECTO
1 = INDIRECTO
Programacion Assembler Teoria Ingenieria en Sistemas de
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
G ) ' I J K
K $digo de 2peracin K K K K K K K K
*ireccin de bifurcacin (M)
Ejemplos :
Tipo : Modo !mp"icito
En el modo implicito no se requiere de una direccion para el operando
G ) ' I J K
$digo de 2peracin K K K K K K K K
Ejemplos :
E5EMPLO NUMRICO DE UNA INSTRUCCIN: 6!*6 ADD ADRS7 R1
CDIGO
HEXAD.
CDIGO
OPERACIN
OPERNDOS OPERACIN
A100 "R W "i#$rc%cion
A200 "RC W "i#$rc%cin con %c%rreo
A&00 CA'' W '(%)%*% % s$+r$tin%
CDIGO
HEXAD.
CDIGO
OPERACIN
OPERNDOS OPERACIN
,100 R-. Retorno *e /$+r$tin%
Programacion Assembler Teoria Ingenieria en Sistemas de
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
3qu se <a graficado el flujo de datos en una instruccin de suma (3**) con dos
operandos, uno de ellos se encuentra en un registro interno O1P y el otro operando
se encuentra en la posicin de memoria OKGKKP . .tese que la ejecucin de la
instruccin se inicia con el contador de programa direccionando a la posicin K&GK<,
lugar donde se encuentra la instruccin. El contador de programa se <a
incrementado y al final del proceso y apunta a la direccin de la pr+ima instruccin
que se debe ejecutar y el registro 1 contiene el resultado de la operacin.
Programacion Assembler Teoria Ingenieria en Sistemas de
Informacin
Arquitectura de Computadoras UNCAUS
Ao 2!
DIAGRAMA DE 0LU5O DE UNA INSTRUCCIN TIPO 6