You are on page 1of 5

La arquitectura de software es un conjunto de patrones que proporcionan un marco de referencia

necesario para guiar la construccin de un software,permitiendo a los programadores, analistas y todo el


conjunto de desarrolladores del software compartir una misma lnea de trabajo y cubrir todos los objetivos
y restricciones de la aplicacin.La arquitectura de software forma la columna vertebral para construir un
sistema de software,es en gran medida responsable de permitir o no ciertos atributos de calidad del
sistema entre los que se destacan la confiabilidad y el rendimiento del software
El Hardware es la parte tangible del computador, aquella que se puede palpar. Los componentes Hardware se
refiere a las partes fsicas y accesorios complementarios que componen la Unidad Central de Procesamiento
(CPU) as como a los dispositivos externos, tales como, monitor, impresora, teclado, mouse, cornetas. Si vemos
el computador como una estructura de hardware, notaremos que esta constituido por dispositivos, que
clasificaremos segn la funcin que desempeen. De acuerdo a esta clasificacin tendremos:

Dispositivos de Entrada.
Dispositivos de Salida.
Dispositivos de Comunicacin.
Dispositivos de Almacenamiento.
Dispositivos de Cmputo.

Dos es un acrnimo de MicroSoft Disk Operating System, sistema operativo creado por Microsoft, y que
tienen instalado la mayora de los ordenadores PC. Es DOS es, adems de un sistema operativo, un
conjunto de programas que nos permiten manipular informacin contenida en discos, de esta forma
podemos trabajar con facilidad, comodidad y rapidez con estos; a dems, el DOS coordina el
funcionamiento del microprocesador para que todo funcione bien en el interior de nuestro ordenador. La
interfaz no era grfica, sino que se utilizaban una Lnea de Comandos, que era una combinacin de
texxtos o datos alfanumricos, que tenan con un intrprete para cada una de las rdenes que se
efectuaban en un lenguaje determinado

El "Debug" es una utilidad de MS-DOS que permite visualizar memoria, introducir programas en ella y rastrear su ejecucin. Una
caracterstica de debug es que despliega todo el cdigo del programa en formato hexadecimal.

Es importante saber que muchos usos de este tipo de utilidades de bajo nivel, requieren un funcionamiento stand-alone, es decir,
fuera de un Sistema Operativo multi-usuario, ya que stos encapsulan y ocultan muchos aspectos del hardware.
Debug es til para:
Ensamblar pocas lneas de cdigo
Des-ensamblar cdigo en RAM, ROM y executables
Correr paso-a-paso programas
Desplegar datos en memoria
Verificar estado de los registros del CPU

DIRECCIONAMIENTO DE MEMORIA Los registros del 8086 son de 16 bits, por lo tanto el nmero de direcciones
posibles a direccionar con 1 solo registro es: 2 65536 10000 16 10 16 = = lo cual representa un total de 64 Kbytes y
los valores de direcciones se encuentran en el rango de 0 a FFFF. Para superar este lmite se utilizan 2 registros para
direccionar memoria: Uno de SEGMENTO y otro de DESPLAZAMIENTO (offset) dentro del segmento. La notacin
utilizada para una direccin segmentada es: SEGMENTO:DESPLAZAMIENTO La relacin entre la direccin de
memoria real y la direccin segmentada es: DIR = SEGMENTO * 16 + DESPLAZAMIENTO Al multiplicar por 16 se
obtienen 4 bits ms con lo que ahora se tiene: 2 1048576 100000 20 10 16 = = con lo cual tenemos un total de
1024Kb = 1Mb de memoria direccionable. Los valores para las direcciones reales se encuentran en el rango 0 a
FFFFFh. Es importante hacer notar que una misma direccin de memoria puede ser direccionada con distintos
valores de segmento y desplazamiento Ej: 100:50 = 105:0 =0:1050, trabajando en base 16.
Registros[editar]
Los registros del i8086 e i8088 se basaron en el diseo del Intel 8080 y el Intel 8085, y de hecho son
compatibles a nivel de lenguaje ensamblador con el i8080. El conjunto de registros tambin es similar al del
i8080, pero ampliados a 16 bits. Tanto el i8086 como el i8088 tienen cuatro registros de propsito general de 16
bits, que tambin pueden ser accedidos como ocho registros de 8 bits, y tienen cuatro registros ndice de 16
bits (incluyendo el puntero de pila). Los registros de datos se usan a veces de forma implcita por las
instrucciones, haciendo ms difcil la organizacin de los registros para emplearlos con valores temporales.
Los registros del procesador, se usan para contener los datos con que se est trabajando puesto que el acceso
a los registros es mucho ms rpido que los accesos a memoria. Se pueden realizar operaciones aritmticas y
lgicas, comparaciones, entre otras. Se pueden hacer estas operaciones con todos los registros excepto los de
segmento, el IP, y los flags.
Registros de Propsito General[editar]
Los registros de propsito general son el AX, BX, CX, y DX, de 16 bits. Cada uno de ellos se divide en dos
registros de 8 bits, llamados AH y AL, BH y BL, CH y CL, y, DH y DL, H significando High (alto) y L significando
Low (bajo), indicando la parte alta o la parte baja del registro correspondiente de 16 bits (ver esquema). Un
programa poda usar tanto los registros de 16 bits como los registros de 8 bits. Aparte del uso general de los
registros para hacer clculos aritmticos y lgicos, existen instrucciones que usan estos registros con un uso
particular especializado, como se indica a continuacin:

Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que implican
entrada/salida, multiplicacin y divisin (estas dos ltimas en conjunto con el registro DX)
Registro BX: El registro BX es el registro base, y es el nico registro de propsito general que puede ser
un ndice para direccionamiento indexado
Registro CX: El registro CX es conocido como el registro contador. Puede contener un valor para controlar
el nmero de veces que un ciclo se repite o un valor para corrimiento de bits
Registro DX: El registro DX es el registro de datos. En algunas operaciones se indica mediante este
registro el nmero de puerto de entrada/salida, y en las operaciones de multiplicacin y divisin de 16 bits
se utiliza junto con el acumulador AX
Registros ndice[editar]
Los registros SI y DI estn disponibles para direccionamiento indexado y para operaciones de cadenas de
caracteres.

Registro SI: El registro ndice fuente de 16 bits es requerido por algunas operaciones con cadenas de
caracteres. El SI est asociado con el segmento DS.
Registro DI: El registro ndice destino tambin es requerido por algunas operaciones con cadenas de
caracteres. El DI est asociado con el segmento ES.
Registros Apuntadores[editar]
Los registros SP (apuntador de pila) y BP (apuntador base) estn asociados con el registro SS y permiten al
sistema acceder a datos en el segmento de la pila.

Registro SP: El apuntador de pila de 16 bits est asociado con el segmento SS y proporciona un valor de
desplazamiento que se refiere a la palabra actual que est siendo procesada en la pila. El sistema maneja
de manera automtica este registro, aunque el programa puede hacer ciertas manipulaciones con l.
Registro BP: El apuntador base de 16 bits facilita la referencia de parmetros dentro de la pila.
Registros de Banderas[editar]
Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la mquina y el resultado
del procesamiento. Muchas instrucciones aritmticas y de comparacin cambian el estado de las banderas y
apoyndose en ellas se pueden tomar decisiones para determinar la accin subsecuente.
La tabla contiene 16 posiciones (de 0 a 15), que son los 16 bits del registro de banderas, numeradas de
derecha a izquierda. La posicin 0 la encontraremos a la derecha y la posicin 15 a la izquierda.

- - - - OF DF IF TF SF ZF - AF - PF - CF

Los bits de las banderas son las siguientes:


OF (overflow, desbordamiento): Indica desbordamiento del bit de mayor orden despus de una operacin
aritmtica de nmeros con signo (1=existe overflow; 0=no existe overflow). Para operaciones sin signo, no
se toma en cuenta esta bandera.
DF (direccin): Controla la seleccin de incremento o decremento de los registros SI y DI en las
operaciones con cadenas de caracteres (1=decremento automtico; 0=incremento). La bandera DF se
controla con las instrucciones STD y CLD.
IF (interrupcin): Controla el disparo de las interrupciones (1=habilita las interrupciones; 0=deshabilita las
interrupciones). La interrupcin no enmascarable es la nica que no puede ser bloqueada por esta bandera.
El estado de la bandera IF se controla con las instrucciones STI y CLI.
TF (trampa): Permite la operacin del procesador en modo de depuracin (paso a paso)
SF (signo): Contiene el signo resultante de una operacin aritmtica (0=positivo; 1=negativo).
ZF (cero): Indica el resultado de una operacin aritmtica o de comparacin (0=resultado diferente de cero;
1=resultado igual a cero).
AF (acarreo auxiliar): Contiene el acarreo del bit 3. Esta bandera se prueba con las instrucciones DAA y
DAS para ajustar el valor de AL despus de una suma o resta BCD.
PF (paridad): Indica si el nmero de bits 1, del byte menos significativos de una operacin, es par
(0=nmero de bits 1 es impar; 1=nmero de bits 1 es par).
CF (acarreo): Contiene el acarreo del bit de mayor orden despus de una operacin aritmtica; tambin
almacena el contenido del ltimo bit en una operacin de desplazamiento o de rotacin.
Registros de Segmento[editar]
Definen reas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086. Estas reas pueden solaparse
total o parcialmente. No es posible acceder a una posicin de memoria no definida por algn segmento: si es
preciso, habr de moverse alguno.

Registro CS: El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro
CS. Esta direccin de segmento, ms un valor de desplazamiento en el registro apuntador de instruccin
(IP), indica la direccin de una instruccin que es buscada para su ejecucin. Para propsitos de
programacin normal, no se necesita referenciar el registro CS.
Registro DS: La direccin inicial de un segmento de datos de programa es almacenada en el registro DS.
Esta direccin, ms un valor de desplazamiento en una instruccin, genera una referencia a la localidad de
un byte especfico en el segmento de datos.
Registro SS: El registro SS permite la colocacin en memoria de una pila, para almacenamiento temporal
de direcciones y datos. El DOS almacena la direccin de inicio del segmento de pila de un programa en el
registro SS. Esta direccin de segmento, ms un valor de desplazamiento en el registro del apuntador de la
pila (SP), indica la palabra actual en la pila que est siendo direccionada. Para propsitos de programacin
normal, no se necesita referenciar el registro SS.
Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra de segmento para
manejar el direccionamiento de memoria. El registro ES est asociado con el registro DI (ndice). Un
programa que requiere el uso del registro ES puede inicializarlo con una direccin de segmento apropiada.
.MODEL SMALL
.STACK
.DATA
N1 DB 0 ; VARIABLE PARA ENTRADA 1
N2 DB 0 ; VARIABLE PARA ENTRADA 2
N3 DB 0 ; VARIABLE PARA RESUTADO
M1 DB 10,13,' First Number : $' ; VARIABLE DE MENSAJE 1
M2 DB 10,13,' Secund Number : $' ; VARIABLE DE MENSAJE 2
M3 DB 10,13,' Result : $' ; VARIABLE DE MENSAJE RESULTADO
.CODE
MAIN:
MOV AX, @DATA ; ACUMULAR DIRECCION DE DATA
MOV DS, AX ; MOVER LA DIRECCION A DS

MOV AH, 9 ; SERVICIO DE IMPRESION


LEA DX, M1 ; OBTIENE LA DIRECCION DE M1
INT 21H ; INTERRUCION 21H
MOV AH, 1 ; SERVICIO DE ENTRADA
INT 21H ; INTERRUCION 21H
SUB AL, 30H ; RESTAR 30H/48D
MOV N1, AL ; MOVER ENTRADA A LA VARIABLE N1

MOV AH, 9 ; BIS


LEA DX, M2
INT 21H
MOV AH, 1
INT 21H
SUB AL, 30H
MOV N2, AL

MOV AL, N1 ; MOV VARIABLE N1 A AL


ADD AL, N2 ; SUMAR N1 Y N2
ADD AL, 30H ; SUMAR RESULTADO CON 30H/48D
MOV N3, AL ; MOVER RESULTADO A N3

MOV AH, 9
LEA DX, M3
INT 21H
MOV AH, 2 ; SERVICIO QUE EXHIBE RESULTADO
MOV DL, N3 ; MUEVE RESULTADO A N3
INT 21H

MOV AH, 4cH ; SERVICIO DE FINALIZACION


INT 21H
END MAIN