Vous êtes sur la page 1sur 7

Organizacin de entrada/salida.

memoria (como mov) puede acceder a un puerto I/O


La familia de procesadores 80x86, presente en el IBM mapeado en memoria.
PC, utiliza la arquitectura Von Neumann, el denominado Conexin mediante puertos especiales de
bus del sistema conecta las diferentes partes de una entrada/salida (I/Omapped I/O), que usa
maquina von Neumann, y en la familia 80x86 se instrucciones especiales de entrada/salida 1 y un
diferencian 3 clases de buses: Bus de datos, de 8, 16, 32 espacio de direcciones especifico. Este es el caso de las
o 64 bits dependiendo del modelo (64 bits para los CPUs 80x86, y por tanto el que nos interesa para este
Pentiums de ltima generacin). El nmero de bits se proyecto.
usa, en general, para determinar el tamao (size) del La familia de procesadores 80x86 proporciona, por
procesador. tanto, dos espacios de direcciones:
Bus de direcciones, para poder conectar la CPU con la Para memoria
memoria y con los dispositivos de entrada/salida. Para dispositivos de E/S
Bus de control, para enviar seales que determinan El bus de direcciones (address bus) vara de tamao
como se comunica la CPU con el resto del sistema (por segn el procesador de la familia que se emplee (puede
ejemplo, las lneas de lectura (read) y escritura (write) ser de 20, 24 o 32 bits), pero para la entrada/salida es
especifican que es lo que se est haciendo en la siempre de 16 bits.
memoria). Esto permite al microprocesador direccionar hasta
Por tanto, los dispositivos de entrada/salida son una de 65536 diferentes localizaciones especiales de
las partes fundamentales de la arquitectura del entrada/salida, lo que es ms que suficiente para la
computador y su objetivo es la eficiencia en la gestin mayora de los dispositivos, aunque muchas veces un
de las operaciones de entrada/salida, descargando a la dispositivo requiera ms de una direccin de
CPU de tanto trabajo como sea posible. entrada/salida (por ejemplo, en el caso del ratn PS/2
Estos dispositivos tienen velocidades muy variadas: veremos que habr que acceder a las direcciones 60h y
Dispositivos lentos (como el ratn, el teclado, el 64h; en el caso del puerto de juegos, suele ser la 201h).
joystick...) Hay 2 espacios de direcciones, pero un solo bus de
Dispositivos de velocidad media (como una impresora) direcciones y son las lneas de control las que deciden a
Dispositivos rpidos (como un disco duro, una tarjeta de que espacio estamos accediendo en cada momento.
red...) De esta manera, el direccionamiento de entrada/salida
Por tanto, un dispositivo concreto no puede aceptar (I/O addressing) se comporta exactamente igual que el
datos enviados a una tasa arbitrariamente alta (por direccionamiento de memoria (memory addressing). La
ejemplo, una impresora no puede imprimir los millones memoria y los dispositivos I/O comparten el bus de
de caracteres por segundo que sera capaz de enviarle datos y los 16 primeros bits del bus de direcciones.
un Pentium IV). Por ello, ha de haber alguna forma de Resumiendo, existen dos consideraciones bsicas que
coordinar l envi de datos entre la CPU y los debemos hacer en el subsistema de entrada/salida en
perifricos. Esa es la misin de los circuitos de interfaz un IBM PC: Las CPUs 80x86 requieren instrucciones
que aparecen en la figura. especiales para acceder a los dispositivos de
Interfaces de Entrada/Salida. entrada/salida.
Existen 2 formas bsicas de conectar estos circuitos de No se pueden direccionar ms de 65536 direcciones de
interfaz, dependiendo del tipo de procesador en que se entrada/salida. Esto es un problema porque algunos
base la arquitectura. Ambos tipos de acceso requieren dispositivos requieren ms direcciones, como por
que la CPU realice el movimiento de los datos entre el ejemplo una tarjeta grfica VGA tpica, que necesita
perifrico y la memoria principal: ms de 128000. Afortunadamente, existen medios,
Conexin mapeada en memoria (memorymapped I/O), utilizando la circuitera adecuada, para mapear en
que usa direcciones especiales en el espacio normal memoria esos dispositivos.
de direcciones. En este caso el circuito de interfaz se Un puerto I/O tiene una apariencia de celda de
conecta en el computador como si fuera memoria. memoria para el computador, pero tiene conexiones
Presentan este tipo de entrada/salida, por ejemplo, con el mundo exterior.
aquellas arquitecturas basadas en el M68000 de Los puertos de entrada/salida se clasifican
Motorola. Cualquier instruccin que acceda a la habitualmente en tres tipos diferentes:
Puertos de solo lectura (readonly o input port) recibir nuevos caracteres; si se trata de un teclado,
Puertos de solo escritura (writeonly o output port) podemos saber si el usuario ha presionado una tecla y el
Puertos de lecturaescritura (readwrite o input carcter a un no se ha ledo, etc.).
output) Otras veces no hay tal registro de estado, y
Por regla general, los puertos de entrada/salida utilizan simplemente se lee lo que haya en la direccin I/O
un latch como elemento de memoria. desde programa, decidiendo luego que hacer con el
Un latch es un circuito electrnico usado para dato ledo. Este es el caso, por ejemplo, de un joystick
almacenar informacin en sistemas lgicos asncronos. analgico conectado al puerto de juegos del PC.
Por ejemplo, en el caso de un puerto de solo escritura el Esta forma de entrada/salida es sencilla, pero
latch captura los datos escritos en l por la CPU y los claramente ineficiente. Por ejemplo, si un usuario tarda
hace disponibles en un conjunto de cables externos a la 10 segundos en mover el ratn, se habrn realizado
CPU y al sistema de memoria. miles de encuestas al dispositivo sin detectar un nuevo
En este tipo de puertos la CPU no puede leer el dato evento, con la consecuente prdida de tiempo para
que ha escrito en el latch ya que para que este funcione realizar otras tareas en la CPU.
deben estar activas tanto la lnea de direcciones como Por otra parte, el ritmo de transferencia de datos est
la de control, y en el caso de querer realizar una lectura limitado por la velocidad de la CPU, ya que no
la lnea control de escritura (write control) no estara podremos encuestar al dispositivo con una frecuencia
activa. arbitrariamente alta. Por tanto, esta forma de
Si el puerto es de lecturaescritura, la CPU puede entrada/salida debe evitarse en lo posible. Sin embargo,
comprobar que el dato se ha escrito correctamente en algunas ocasiones no quedar a otra opcin, ya que el
leyendo del puerto. dispositivo en cuestin no genera interrupciones (como
Un puerto de entrada/salida se comportara como se es el caso del joystick que veremos en este proyecto).
describe en la figura (la parte inferior de la figura Entrada/Salida por interrupciones.
correspondera a un puerto de solo lectura (input port)). En el caso de la entrada/salida por interrupciones, es el
Los datos que se escriban en un puerto de solo lectura dispositivo quien establece el momento en que se
son ignorados por el sistema. realiza la transferencia de los datos, avisando a la CPU
Formas de realizar la entrada/salida. de que ha ocurrido un evento (por ejemplo, que el
Ya hemos visto que para coordinar l envi de datos usuario haya presionado una tecla). En este punto,
entre la CPU y los dispositivos se usan circuitos de debemos aclarar que en la familia 80x86 existen tres
interfaz especiales. tipos de interrupciones, que a veces producen
Existen bsicamente tres formas de realizar la gestin confusin por la nomenclatura empleada en diversos
de entrada/salida en un dispositivo, es decir, tres textos: Las traps o interrupciones software son
formas en que estos circuitos de interfaz pueden interrupciones invocadas por el usuario desde
operar: programa. En este caso, la CPU pasa a ejecutar el
Entrada/salida por encuesta (tambin llamada por manejador de trap asociado (su rutina de atencin a la
consulta o programada, en ingles mtodo polling). interrupcin o ISR).
Entrada/salida por interrupciones. Las excepciones son traps generadas automticamente
Entrada/salida por acceso directo a memoria. en respuesta a alguna condicin excepcional producida
Entrada/salida por consulta. al intentar ejecutar una instruccin: divisin por cero,
El polling, utilizado en las primeras computadoras cdigo de operacin ilegal...Tambin en este caso se
personales (como Apple II), consiste en que la CPU ejecuta la ISR asociada, decidiendo, en su caso, qu
sondea peridicamente al dispositivo para ver cul es su hacer con la situacin anmala.
estado. Ese sondeo se puede hacer, por ejemplo, Las interrupciones hardware, a las que llamaremos
leyendo de una direccin de entrada/salida simplemente interrupciones, se basan en un evento
correspondiente a uno o varios registros de estado del hardware externo a la CPU y no relacionado con la
dispositivo. secuencia de instrucciones que se est ejecutando en
Los bits de esos registros de estado nos dirn cul es la ese momento. Son las que un ingeniero electrnico ms
situacin concreta del dispositivo (por ejemplo, si se intuitivamente relacionara con el trmino
trata de una impresora, podemos saber si esta lista para
interrupcin, y con las que vamos a tratar en este chips del 8259 para soportar un total de 64 dispositivos
proyecto. que generen interrupciones. Lo normal, sin embargo, es
Para cada tipo de interrupcin, por tanto, se puede tener solamente dos, tal como se muestra en la figura, y
instalar una rutina de atencin o servicio de soportar un total de 15 interrupciones.
interrupcin. Entrada/Salida por acceso directo a memoria (DMA).
Cuando la CPU recibe notificacin de la interrupcin Tanto los subsistemas de entrada/salida mapeada en
detiene el programa en ejecucin, ejecuta la ISR (es memoria como los que usan puertos de entrada/salida
decir, sirve al dispositivo haciendo que cese su peticin necesitan que sea la CPU la que realice la transferencia
de interrupcin (si es necesario, se accede al de los datos entre el dispositivo y la memoria.
controlador de interrupciones para hacer lo mismo)) y Para algunos dispositivos de alta velocidad, esta forma
finalmente devuelve el control al programa, de procesar los datos puede resultar demasiado lenta.
restaurando su estado anterior. En el caso del DMA, el dispositivo puede operar
Por tanto, una condicin importante a cumplir es que directamente sobre la memoria, siempre que la CPU le
una ISR debe preservar el estado del procesador (el haya concedido el permiso para hacerlo.
contenido de todos sus registros) para poder volver al De esta manera, solo se avisa a la CPU al comienzo o al
estado anterior a la llamada. final de una operacin sobre memoria y se consigue una
Existe una diferencia entre las interrupciones hardware tasa de transferencia de datos superior a la de los otros
y las dems: cuando se entra en una ISR de una mtodos.
interrupcin hardware, el procesador 80x86 deshabilita Adems esto a menudo permite que las operaciones de
posteriores interrupciones hardware poniendo a 0 el entrada/salida se realicen en paralelo a otras
flag de interrupcin. operaciones de la CPU, aumentando as el rendimiento
Esto no ocurre con las traps ni con las excepciones. Por global del sistema. Sin embargo, ntese que no es
tanto, si queremos inhabilitar las interrupciones en posible que la CPU y el dispositivo utilicen a la vez el bus
medio de una ISR de trap o excepcin, hay que hacerlo de direcciones y de datos, por lo que el procesamiento
explcitamente, con la instruccin cli en ensamblador paralelo se dar solo cuando la CPU est operando
o con los medios que proporcione el sistema operativo sobre datos contenidos en una memoria cache.
De la misma forma, para permitir nuevas interrupciones Sistemas Operativos 8 bits.
hardware en medio de una ISR hardware, hay que usar 8 bits: Los sistemas operativos de 8 bits son sistemas
una instruccin sti. operativos que pueden ser instalados en equipos que
Las fuentes primarias de interrupcin en el PC son utilizan un microprocesador de 8 bits o mayor.
variadas: Ejemplos
Timer chip del PC Teclado - Puertos series y paralelos CP/M (Control Program for Microcomputers) fue
Discos - Reloj de tiempo real CMOS - Ratn - Tarjetas un sistema operativo desarrollado por Gary Kildall para
de sonido - Otros dispositivos el microprocesador Intel 8080 (los Intel 8085 y Zilog
Todos estos dispositivos se conectan al controlador Z80 podan ejecutar directamente el cdigo del 8080,
programable de interrupciones o PIC (Programmable aunque lo normal era que se entregara el cdigo
Interrupt Controller) Intel 8259A, que establece recompilado para el microprocesador de la mquina).
prioridad entre las interrupciones y se conecta con la Se trataba del sistema operativo ms popular entre las
CPU. computadoras personales en los aos 1970. Aunque fue
Este controlador de interrupciones (que se denomina modificado para ejecutarse en un IBM PC, el hecho
genricamente 8259) acepta interrupciones de hasta que IBM eligiera MS-DOS, al fracasar las negociaciones
8 dispositivos. Si cualquier dispositivo pide servicio, el con Digital Research, hizo que el uso de CP/M
8259 se conectara con la CPU y le pasar a un vector de disminuyera hasta hacerlo desaparecer.
interrupcin programable. Atari construy una serie de computadores personales
En un principio, el PC IBM original solo soportaba ocho de 8 bits basados en el CPU 6502 de MOS Technology.
interrupciones diferentes ya que usaba un solo chip Las computadoras Atari de 8 bits vinieron con un
8259. Ms tarde IBM (y todos los fabricantes de PCs) a sistema operativo integrado en la ROM, El Atari 400 y el
aadieron un segundo PIC en el PC/AT y posteriores 800 tenan el siguiente:
maquinas. De hecho, podran encadenarse hasta nueve OS Rev. A - 10K ROM (3 chips), primeras mquinas.
OS Rev. B - 10K ROM (3 chips), correccin de errores. que estaban reservados a servidores y estaciones de
El ms comn para el 400 y el 800. trabajo.
Sistemas Operativos 16 bits. Actualmente existen versiones de 64bits de casi todos
En un sistema operativo de 16 bits donde se ejecutan los sistemas operativos, ya sean de Microsoft (Windows
aplicaciones de 16 bits en una maquina con un XP, Windows Server o Windows Vista), Linux o Mac.
procesador 16 bits. En principio significa que el sistema es capaz
Ejemplos de desplazar el doble de informacin por ciclo de reloj
DOS es una familia de sistemas operativos para PC. El que en un sistema de 32bits. OJO, no que ese
nombre son las siglas de disk operating desplazamiento sea ms rpido, sino que se desplazan
system ("sistema operativo de disco"). Fue creado ms datos. Evidentemente, lo primero puede implicar lo
originalmente para computadoras de la familia IBM PC, segundo en determinadas circunstancias, pero no
que utilizaban los procesadores Intel 8086 y 8088, de 16 siempre.
bits, siendo el primer sistema operativo popular para Tambin implica un aumento en las direcciones de
esta plataforma. Contaba con una interfaz de lnea de memoria, lo que hace que se supere el lmite que tienen
comando en modo texto o alfanumrico, va su los sistemas de 32bits, establecido en 4GB. La capacidad
propio intrprete de rdenes, command.com. de direccionamiento de memoria de un sistema de
Probablemente la ms popular de sus variantes sea la 64bits es de aproximadamente 16 exabytes.
perteneciente a la familia MS-DOS, de Microsoft, Ejemplos:
suministrada con buena parte de los Windows vista puede ser de 64 bits y Windows 7 es de
ordenadores compatibles con IBM PC, en especial 64 bits.
aquellos de la familia Intel, como sistema operativo El ciclo de desarrollo de programas.
independiente o nativo, hasta la versin 6.22 (bien Para crear un programa ejecutable utilizando lenguaje
entrados los 90), frecuentemente adjunto a una versin ensamblador es necesario realizar la serie de pasos,
de la interfaz grfica Ms Windows de 16 bits, como conocida como ciclo de desarrollo de programas, que se
las 3.1x. muestra en la figura.
Windows 3.x es el nombre genrico con el que se suele Para cada programa que se realice, habr
conocer a las versiones 3.0, 3.1 y 3.11 de la Interfaz eventualmente tres archivos en el disco. El paso inicial
grfica de usuario del sistema Microsoft DOS es crear un archivo de programa fuente. Para crear este
(MsDOS) (Microsoft Windows nunca fue realmente un programa es necesario usar un editor de texto o cdigo
Sistema Operativo con verdadero entorno grfico fuente.
hasta Windows 95). Este archivo contendr todas las instrucciones de
Sistemas Operativos 32 bits. lenguaje ensamblador que conforman nuestro
32 bits es un trmino dado a una generacin de programa. Por convencin, los archivos escritos en
computadoras en las cuales los procesadores eran de 32 lenguaje ensamblador tienen asignados la extensin
bits. .ASM.
El primer microprocesador de Intel de 32 bits fue el 486, Los mdulos de programa fuente que constituyen un
que sali al mercado en 1989, pero no fue sino hasta programa ejecutable pueden estar organizados en una
1995 seis aos despus- que Microsoft liber su gran variedad de formas. Por ejemplo, pueden
primer sistema operativo de 32 bits (Windows 95). escribirse todos los procedimientos de un programa en
En trminos generales, un sistema de 32 bits requiere un solo mdulo o pueden dividirse estos procedimiento
al menos de 512 MB de memoria, se recomienda 1 GB y en diferentes mdulos, de acuerdo a la especificad de la
el mximo que soporta son 4 GB. tarea que realizan.
Ejemplos El programa en ensamblador, con extensin .ASM, es
Windows XP, Unix / Linux y MAC/OS X despus usado para convertir el archivo de programa
Actualmente la inmensa mayora de ordenadores que se fuente en un archivo objeto, utilizando un traductor de
vendes estn basados en una arquitectura de 64bits. lenguaje ensamblador, tal como el Macro Assembler, o
Esto, que a muchos les puede parecer una gran MASM, de Microsoft o el Turbo Assembler, o TASM, de
novedad, no lo es realmente, ya que sistemas de 64bits Borland.
hace ms de diez aos que existen en el mercado, slo
Si durante el proceso de ensamblado del programa se direccionamiento real utilizan segmentos de 16 bits y
encuentran errores en algn mdulo de programa siguen el esquema de direccionamiento segmentado. Si
fuente, deber regresarse al paso anterior para utiliza un procesador de 32 bits, puede usar los registros
corregirlos antes de continuar. de propsito general de 32 bits para datos, incluso en el
Para cada archivo fuente (con extensin .ASM) que se modo de direccionamiento real. He aqu un resumen de
traduzca sin encontrar errores, el ensamblador crear las caractersticas de codicacin en los programas de
un archivo objeto cuya extensin por omisin ser .OBJ. 16 bits:
Tambin, durante el ensamblado de programas La directiva .MODEL especica el modelo de memoria
opcionalmente pueden generarse archivos de listado que utilizar el programa. Recomendamos el modelo
(con extensin .LST) y de referencias cruzadas (con pequeo (Small), el cual mantiene el cdigo en un
extensin .CRF). segmento y la pila ms los datos en otro:
Para combinar todos los archivos objeto que integran .MODEL spmall
un programa y formar un archivo de programa La directiva .STACK asigna una pequea cantidad de
ejecutable (cuya extensin por omisin es .EXE), deber espacio en la pila local para nuestro programa. Por lo
utilizarse un programa enlazador o ligador. Se puede general, muy pocas veces se necesitan ms de 256 bytes
hacer uso del enlazador Turbo Link, o TLINK, de Borland, de espacio en la pila. La siguiente instruccin es
aunque tambin puede utilizarse el programa LINK de bastante generosa, con 512 bytes:
Microsoft. En este paso opcionalmente pueden crearse .STACK 200h
archivos con mapas del ejecutable producido, con Se requieren dos instrucciones al principio de main si el
extensin .MAP. programa hace referencia a variables. Estas
El archivo ejecutable debe ser depurado para descubrir instrucciones inicializan el registro DS con la ubicacin
errores lgicos. inicial del segmento de datos, identicado por la
La depuracin puede involucrar las siguientes tcnicas: constante predenida @data de MASM:
Ejecutar el programa para estudiar su entrada y su mov ax,@data
salida. mov ds,ax
Estudiar archivos fuente (.ASM) y de listado (.LST). Todo programa debe incluir una instruccin para
Utilizar el programa CREF para crear un archivo de terminar el programa y regresar al sistema operativo.
listado de referencias cruzadas (.REF) Una forma de hacerlo es usando la directiva .EXIT:
Utilizar un depurador, como Turbo Debugger de Borland .EXIT
Int'l, para seguir la ejecucin del programa. De manera alternativa, podemos llamar a la funcin 4Ch
Si algn error lgico es encontrado durante la de INT 21h:
depuracin, deber retornarse al primer paso (edicin) mov ah,4ch ; termina el proceso
para corregir el cdigo fuente. int 21h ; interrupcin de MS-DOS
Estructura de un programa. Escritura del texto Hola Mundo.
Dosseg; prepara los segmentos para trabajar con DOS .MODEL SMALL
.Model small; define el modo del ejecutable .STACK
.Stack 100h; define el tamao de la pila .DATA
.data; zona de definicin de los datos MENSAJE DB "Hola mundo", "$"
Definicin de datos .CODE
.code ;-----------------------inicio bloque-----------------------
Mov ax, @data; inicializacin de los datos en ;---------------------------------------------------------------
Mov ds, ax; el segmento de datos MAIN PROC ;Inicia proceso
Cdigo del programa MOV AX,SEG MENSAJE ;hmm seg?
Mov AH, 4Ch; terminacin del programa y MOV DS,AX ;ds = ax = saludo
Int 21h; devolucin del control a DOS MOV AH,09 ;Funcion (print string)
end; fin de programa LEA DX,MENSAJE ;DX = String terminado por "$"
Los programas diseados para MS-DOS deben ser INT 21H ;Interruptions DOS Functions
aplicaciones de 16 bits que se ejecuten en modo de ;-------------mensaje en pantalla---------------------------
direccionamiento real. Las aplicaciones en modo de ;-----------------------------------------------------------------
mov AX,4C00H ;F (limpiar pantalla y salir del codigo) es cargado en el registro CS y la direccin de la
int 21H ;Interruption al dos declaracin del stack segment es automticamente
MAIN ENDP ;Termina proceso cargada en el registro SS.
END MAIN Las ltimas dos instrucciones del segmento CODE usa la
Ensamblando y ejecutando un programa. funcin 4CH de MS-DOS para regresar el control al
Para comenzar veamos un pequeo ejemplo que ilustra sistema operativo. Existen muchas otras formas de
el formato del programa fuente. Este ejemplo est hacer esto, pero sta es la ms recomendada.
completamente desarrollado en lenguaje ensamblador La directiva END indica el final del cdigo fuente y
que usa servicios o funciones de MS-DOS (system calls) especifica a START como punto de arranque.
para imprimir el mensaje Hola mundo!! en pantalla. Un Hola mundo de ensamblador en el debug.
; HOLA.ASM ; Programa clsico de ejemplo. Despliega -a se utiliza para programar instrucciones
una leyenda en pantalla. 13B5:0100 jmp 0125 ;hacemos un salto de direccin
STACK SEGMENT STACK ; Segmento de pila 13B5:0102
DW 64 DUP (?) ; Define espacio en la pila -e 0102 Ejemplo de ensamblador$ ;con el comando
STACK ENDS (e) programamos el msj.
DATA SEGMENT ; Segmento de datos -a 0125 ;regresamos a la direccin de salto
SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena 13B5:0125 mov ah, 09 ;aqu damos la
DATA ENDS instruccin que permite imprimir el msj
CODE SEGMENT ; Segmento de Cdigo 13B5:0127 mov dx, 0102 ;cargamos el msj en el
ASSUME CS:CODE, DS:DATA, SS:STACK registro dx y la direccin donde esta el msj
INICIO: ; Punto de entrada al programa 13B5:012A int 21 ;ejecutamos la interrupcin 21
MOV AX,DATA ; Pone direccin en AX que llama al DOS
MOV DS,AX ; Pone la direccin en los registros 13B5:012C int 20 ;y la interrupcin 20
MOV DX,OFFSET SALUDO ; 13B5:012E ;ultima direccin
Obtiene direccin del mensaje -n hola.com ;con el comando n guardamos el archivo
MOV AH,09H ; Funcin: Visualizar cadena -h 012E 0100 ;tamao del archivo con el comando h
INT 21H ; Servicio: Funciones alto nivel DOS 022E 002E ;longitud en bytes del programa
MOV AH,4CH ; Funcin: Terminar -rcx ;cargar en registro cx la longitud
INT 21H CX 000
CODE ENDS :002e ;longitud de bytes
END INICIO ; Marca fin y define INICIO -w ;para escribir los bytes del archivo
La descripcin del programa es como sigue: -q para salir del debug
Las declaraciones SEGMENT y ENDS definen los Tcnicas de Programacin.
segmentos a usar. En ensamblador los bucle, condicionales, subrutinas y
La variable SALUDO en el segmento DATA, define la dems elementos se codifica de forma distinta de cmo
cadena a ser desplegada. El signo del dlar al final de la se hace en otros lenguajes de alto nivel.
cadena (denominado centinela) es requerido por la A continuacin describiremos algunas tcnicas tiles
funcin de visualizacin de la cadena de MS-DOS. para codificar las estructuras mas usuales.
La etiqueta START en el segmento de cdigo marca el BUCLES:
inicio de las instrucciones del programa. Inicializacin de un registro(a modo de contador) al n
La declaracin DW en el segmento de pila define el de vueltas del bucle.
espacio para ser usado por el stack del programa. Etiqueta: Primera instruccin del bucle
La declaracin ASSUME indica que registros de <resto de instrucciones dentro del bucle>
segmento se asociarn con las etiquetas declaradas en decrementar el contador
las definiciones de segmentos. saltar a la etiqueta si el contador es mayor que cero
Las primeras dos instrucciones cargan la direccin del <instrucciones fuera del bucle>
segmento de datos en el registro DS. Estas instrucciones SALTOS CONDICIONALES:
no son necesarias para los segmentos de cdigo y stack Instruccin de comparacin
puesto que la direccin del segmento de cdigo siempre
Evaluar condicin y si se cumple saltar a la etiqueta
prefijada
<instrucciones para el caso de no cumplirse la
condicin>
saltar fuera del condicional
MACROS:
Declaracin:
<nombre de la macro> MACRO
<instrucciones de la macro>
ENDM
Llamada:
<nombre de la macro>
SUBRUTINAS:
Declaracin:
<nombre la de subrutina> PROC
<instrucciones de la subrutina>
RET
<nombre de la subrutina> ENDP
Llamada:
CALL <nombre de la subrutina>

Vous aimerez peut-être aussi