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>