Beruflich Dokumente
Kultur Dokumente
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
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
LEA DX, M3
INT 21H
MOV AH, 2 ; SERVICIO QUE EXHIBE RESULTADO
MOV DL, N3 ; MUEVE RESULTADO A N3
INT 21H