You are on page 1of 113

LENGUAJE ENSAMBLADOR

Fundamentos Profesor: Ren Pea Martnez

ENSAMBLADOR
Es un lenguaje de programacin de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representacin simblica de los cdigos de mquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura legible por un programador

Alto nivel

Cobol Pascal Basic Java C BCPL

Mediano nivel

Bajo nivel

Ensamblador

Maquina

001110011010100

Los

lenguajes de bajo nivel son mas fciles de utilizar que los lenguajes mquina, pero, al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador.

Las

instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos.

Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: en ingls, ADD, SUB, DIV, etc.; en espaol, SUM, RES, DIV,etc. Una instruccin tpica de suma sera: ADD M, N, P Esta instruccin podra significar sumar el nmero contenido en la posicin de memoria M al nmero almacenado en la posicin de memoria N y situar el resultado en la posicin de memoria P. Evidentemente es mucho ms sencillo recordar la instruccin anterior con un nemotcnico que su equivalente en cdigo mquina. 0110 1001 1010 1011

Un

programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora en esto se diferencia esencialmente del lenguaje mquina, sino que requiere una fase de traduccin al lenguaje mquina.

El

programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje mquina se conoce como programa objeto, ya directamente entendible por la computadora.

El

traductor de programas fuente a objeto es un programa llamado ensamblador, existente en casi todos los computadores.

Ventajas del lenguaje ensamblador.

Los lenguajes ensambladores presentan la ventaja frente a los lenguajes mquina de su mayor facilidad de codificacin y, en general, su velocidad de clculo. La segunda razn es el control total de la PC que se tiene con el uso del mismo. El ensamblador permite una optimizacin ideal en los programas tanto en su tamao como en su ejecucin.

Desventajas del lenguaje ensamblador.

Dependencia total de la mquina lo que impide la transportabilidad de los programas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh. La formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que no slo las tcnicas de programacin, sino tambin el conocimiento del interior de la mquina.

ESCALABILIDAD
Es

la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida.

MICROPROCESADOR
El

microprocesador o simplemente procesador, es el circuito integrado central y ms complejo de una computadora procesador es un circuito integrado constituido por millones de componentes electrnicos integrados.

El

Su arquitectura interna consta de las siguientes partes


Unidad

de control Unidad Aritmtica lgica Registros Internos Buses internos Interrupciones

Arquitectura Interna del microprocesador

Secuencia de acciones
1. 2. 3. 4.

5.

Se inicia en una posicin de memoria definida Se lee el dato de esa posicin y se manda al control La unidad de control decodifica la instruccin y la ejecuta en seales adecuadas Se incrementa el contador del programa (registro que indica a que posicin se debe dirigir) Se repite proceso desde el punto 2, hasta recibir unas seal del exterior

Arquitectura

ALU
Circutito

digital que realiza operaciones artimeticas y logicas

Unidad de control
Cerebro del microprocesador, genera seales de control interno y externo. Recibe cdigos los cuales decodifica y ejecuta. Los cdigos pueden ser: Operaciones aritmtico lgicas Cargar o leer datos Saltos o interrupciones

1.

2.
3.

Posiciones de memoria con utilidad general o especifica. Tipos: 1. Registros de datos: operaciones aritmticas lgicas y manipulacin de datos 2. Registros de Direcciones : para acceder a posiciones de memoria - Contador de programa: leer o escribir datos de programa - Puntero de pila: Recuperar y guardar datos de uso interno - ndices: para acceder a posiciones de memoria en forma relativa 3. Registro de estado: para informacin especifica

Registros internos

Interrupciones
Utilizadas

para interrumpir la secuencia del programa.

Buses Internos
Caminos de comunicacin que conectan dos o mas dispositivos o acceder a diferentes partes del circuito

1. Bus de direccin: para seleccionar posicin de memoria para leer o escribir datos 2. Bus de datos: transmitir datos El microprocesador se dividen por el numero de bits que conforman el dato 4, 8 , 16, 32, 46 bits

3. Bus de control: para sincronizar actividades y transacciones con los perifricos del sistema

CLASIFICACIN DEL MICROPROCESADOR


Una forma es en funcin de las instrucciones que son capaces de ejecutar. Microprocesadores con tecnologa CISC y RISC CISC (Complex Instructions Set Computer): Interpreta y ejecuta un gran numero de instrucciones, lo cual los hace lentos RISC ( Reduced Instructios Set Computer): Interpreta y ejecuta solo instrucciones reducidas, son mas rpidos que los CISC

Von Neumann

Es una de las arquitecturas mas primitivas, cuando se invento los programas eran muy pequeos y los costos de memoria eran muy altos. En esta estructura, tanto datos como programa son guardados en la misma memoria y accesados en el mismo bus. Cada instruccin es leda de memoria, decodificada y ejecutada. Durante el estado de decodificacin algunos operadores son ledos de la misma memoria. Las computadoras Von Neumann son llamadas tambin computadoras de almacenamiento de programas, porque los programas son guardados en ROM, la cual no se cambia durante el tiempo de ejecucin.

Arquitectura Harvard
Esta es una modificacin de la arquitectura Von Neumann, en esta arquitectura se separa la salida (direcciones y bus de datos) de datos para accesar al cdigo (programa) y datos (operadores). Esto hace posible leer datos e instrucciones al mismo tiempo (en diferentes buses) Desde que las instrucciones tienen un bus de datos separados, la siguiente instruccin puede ser leda mientras se decodifica y ejecutan las instrucciones actuales

Derivados de la arquitectura Harvard


Existen algunos derivados de la arquitectura Harvard, las cuales tienen mltiples buses de datos para accesar datos, tales arquitecturas son mas aplicadas para aplicaciones intensivas de datos (como procesos de seales digitales) las cuales requieren mltiples operadores de datos para la ejecucin de cada instruccin. Desde que estos operadores son ledos en paralelo se logro una gran mejora en ejecucin.

Complex Instruction Set Computer (CISC)


En los inicios de la computacin, se codificaba en cdigo ensamblador o maquina. Para hacer rpida y fcil la programacin las computadoras soportaban un gran numero de instrucciones. Estas instrucciones podan hacer operaciones complejas, una sola instruccin poda leer uno o mas operadores y hacer una o mas operaciones con esos operadores. Esto hacia la programacin fcil y con menos cdigo. Otro factor favorable fue el costo de memoria, las memorias eran costosas, por lo que los diseadores hacan juegos de instrucciones densos

Reduced Instruction Set (RISC)

Es un tipo de microprocesador con las siguientes caractersticas fundamentales: Instrucciones de tamao fijo y presentadas en un reducido nmero de formatos. Slo las instrucciones de carga y almacenamiento acceden a la memoria de datos. Adems estos procesadores suelen disponer de muchos registros de propsito general. El objetivo de disear mquinas con esta arquitectura es posibilitar la segmentacin y el paralelismo en la ejecucin de instrucciones y reducir los accesos a memoria. Esta surge con los lenguajes de alto nivel

Procesador digital de seal

Es un sistema basado en un procesador que posee un juego de instrucciones, un hardware y un software optimizados para aplicaciones que requieran operaciones numricas a muy alta velocidad. Debido a esto es especialmente til para el procesado y representacin de seales analgicas en tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben muestras normalmente provenientes de un conversor analgico/digital (ADC).

Caracteristicas: Necesita una memoria donde almacenar los datos con los que trabajar y el programa que ejecuta Puede trabajar con varios datos en paralelo y un diseo e instrucciones especficas para el procesado digital.

VLIW PROCESADOR
Very

Long Instruction Word. Esta arquitectura de CPU implementa una forma de paralelismo a nivel de instruccin. Es similar a las arquitecturas superescalares, ambas usan varias unidades funcionales (por ejemplo varias ALUs, varios multiplicadores, etc) para lograr ese paralelismo.

Los

procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de instrucciones muy simples en cuanto a nmero de instrucciones diferentes, pero muy grandes en cuanto al tamao de cada instruccin.

Ventajas Simplificacin de la arquitectura hardware al no tener que planificar el cdigo. Menor potencia y consumo. Inconvenientes Requiere compiladores mucho ms complejos. Cualquier mejora en la arquitectura hardware implica un cambio en el juego de instrucciones (compatibilidad hacia atrs nula).

SMID

Single Instruction, Multiple Data es una tcnica empleada para conseguir paralelismo a nivel de datos. SIMD consisten en instrucciones que aplican una misma operacin sobre un conjunto ms o menos grande de datos. Es una organizacin que influye muchas unidades de procesamiento bajo la supervisin de una unidad de control comn. Todos los procesadores reciben la misma instruccin de la unidad de control, pero operan sobre diferentes conjuntos de datos. Es decir la misma instruccin es ejecutada de manera sncrona por todas las unidades de procesamiento.

MULTICORE-PROCESADOR

A multi-core processor Es un componente de computadora con dos o mas procesadoresindependientes (called "cores"), los cuales son unidades que leen y ejecutan isntrucciones de programas. Los datos en la instruccion le dicen al procesador que hacer. Las instrucciones hacen cosas muy basicas como leer datos de meoria o mandar datos a un display, pero son procesados rapidamente.

PROCESADOR STREAM
El

procesador STREAM, acrnimo de Sistema de Tiempo Real para la Extraccin y Anlisis de Movimiento, es una arquitectura de procesamiento de imgenes implementada en una tarjeta PCI

Desde el punto de vista funcional es, bsicamente, el encargado de realizar toda operacin aritmticolgica, de control y de comunicacin con el resto de los componentes integrados que conforman un PC, siguiendo el modelo base de Von Neumann. Tambin es el principal encargado de ejecutar los programas, sean de usuario o de sistema; slo ejecuta instrucciones programadas a muy bajo nivel, realizando operaciones elementales, bsicamente, las aritmticas y lgicas, tales como sumar, restar, multiplicar, dividir, las lgicas binaris y accesos a memoria.

Esta

unidad central de procesamiento est constituida, esencialmente: por registros, una unidad de control y una unidad aritmtico lgica (ALU) .

TIPOS DE ENSAMBLADORES
Aunque todos los ensambladores realizan bsicamente las mismas tareas, podemos clasificarlos de acuerdo a caractersticas. As podemos clasificarlos en:

-Ensambladores Cruzados (Cross-Assembler). - Ensambladores Residentes. - Macroensambladores. - Micro ensambladores. - Ensambladores de una fase. - Ensambladores de dos fases.

Ensambladores Cruzados (Cross-Assembler).

Se denominan as los ensambladores que se utilizan en una computadora que posee un procesador diferente al que tendrn las computadoras donde va a ejecutarse el programa objeto producido. El empleo de este tipo de traductores permite aprovechar el soporte de medios fsicos (discos, impresoras, pantallas, etc.), y de programacin que ofrecen las mquinas potentes para desarrollar programas que luego los van a ejecutar sistemas muy especializados en determinados tipos de tareas.

Ensambladores Residentes.
Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecucin, al programa objeto producido. Este tipo de ensamblador tiene la ventaja de que se puede comprobar inmediatamente el programa sin necesidad de transportarlo de un lugar a otro, como se haca en crossassembler, y sin necesidad de programas simuladores. Sin embargo, puede presentar problemas de espacio de memoria, ya que el traductor ocupa espacio que no puede ser utilizado por el programador. Asimismo, tambin ocupar memoria el programa fuente y el programa objeto. Esto obliga a tener un espacio de memoria relativamente amplio. Es el indicado para desarrollos de pequeos sistemas de control y sencillos automatismo empleando microprocesadores

MACROENSAMBLADORES. Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su potencia, normalmente son programas robustos que no permanecen en memoria una vez generado el programa objeto. Puede variar la complejidad de los mismos, dependiendo de las posibilidades de definicin y manipulacin de las macroinstrucciones, pero normalmente son programas bastantes complejos, por lo que suelen ser ensambladores residentes.

MICRO ENSAMBLADORES. Generalmente, los procesadores utilizados en las computadoras tienen un repertorio fijo de instrucciones, es decir, que el intrprete de las mismas interpretaba de igual forma un determinado cdigo de operacin. El programa que indica al intrprete de instrucciones de la UCP cmo debe actuar se denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador. Existen procesadores que permiten la modificacin de sus microprogramas, para lo cual se utilizan micro ensambladores.

ENSAMBLADORES DE UNA FASE.


Estos ensambladores leen una lnea del programa fuente y la traducen directamente para producir una instruccin en lenguaje mquina o la ejecuta si se trata de una pseudoinstruccin. Tambin va construyendo la tabla de smbolos a medida que van apareciendo las definiciones de variables, etiquetas, etc. Debido a su forma de traduccin, estos ensambladores obligan a definir los smbolos antes de ser empleados para que, cuando aparezca una referencia a un determinado smbolo en una instruccin, se conozca la direccin de dicho smbolo y se pueda traducir de forma correcta. Estos ensambladores son sencillos, baratos y ocupan poco espacio, pero tiene el inconveniente indicado

Los microprocesadores poseen dos tipos de memoria interna:


Memoria

RAM (memoria de acceso aleatoria) Memoria ROM (memoria de solo lectura)

Los

bytes en memoria se numeran de forma consecutiva, iniciando con 00, de modo que cada localidad tiene un un numero de direccion unico.
64 k sistema base ROM
1924 k area de expansion De memoria (ROM) 128 k area de despliegue de video (RAM) 640 k memoria (RAM)

Inicio Dec 960 k

Direccion Hex F0000

CLASIFICACION DE MEMORIAS.

Las memorias se clasifican, por la tecnologa empleada y segn la forma en la que se puede modificar su contenido.

Las cuales son:


Memoria RAM (memoria de acceso aleatorio) Memoria ROM (memoria de solo lectura)

CLASIFICACION DE MEMORIA RAM


EDO RAM. (Memoria de acceso aleatorio con salida de datos extendida).
DRAM. (Memoria dinmica de acceso aleatorio).

RAM

SDRAM. (Memoria dinmica de paginacin de acceso aleatorio).


RDRAM. (Memoria dinmica de acceso aleatorio para tecnologas rambus). SRAM. (Memoria esttica de acceso aleatorio.

CLASIFICACION DE MEMORIA ROM

PROM. (Memoria programable de solo lectura).

ROM

EPROM. (Memoria de solo lectura programable y borrable). EEPROM. (Memoria de solo lectura programable y borrable elctricamente).

Memoria flash.

SEGMENTOS Y DIRECCIONAMIENTO

El procesador se divide en dos unidades lgicas :


Unidad

de ejecucin (EU) Unidad de interfaz del bus (BIU)

El

papel de la EU es ejecutar instrucciones, contiene el ALU, CU y varios registros

El BIU enva instrucciones y datos a la EU. La funcin mas importante del BIU es manejar la unidad de control del bus, los registros de segmentos, y la cola de instrucciones. La BIU controla los buses que transfieren los datos a la EU, a la memoria y a los dispositivos de E/S externos, mientras que los registros de segmentos controlan el direccionamiento de memoria

El BIU permite acceso a las instrucciones, puede acceder a estas desde la memoria y colocarlas en la cola de instrucciones. Tamao de la cola de 4 a 32 bytes

La EU y la BIU trabajan en paralelo, La EU notifica al BIU cuando necesita acceso a los datos en memoria o a dispositivos de E/S La EU solicita instrucciones de maquina de la cola de instrucciones de la BIU Mientras la EU esta ocupada ejecutando una instriccion el BIU busca otra en la memoria, esto aumenta la velocidad de procesamiento.

Un

segmento es un area especial en un programa que incia en un limite de una localidad regularmente divisible entre 16 o 10 hex segmento, puede estar ubucado casi en cualquier lugar y puede ser hasta de 64 K

Un

Se

puede tener cualquier numero de segmentos, para direccionar un segmento en particular basta cambiar la direccion en el registro del segmento apropiado

Los tres segmentos principales son:


Segmentos

de cdigo Segmentos de datos Segmentos de pila

Segmentos de codigo (CS)


Contiene

instrucciones de maquina que son ejecutadas. Comnmente la primera instruccin ejecutable esta en el inicio del segmento, el SO enlaza a esa localidad para iniciar la ejecucin del programa

Segmento de datos (DS)


Contiene

datos, constantes y areas de trabajo definidos por el proograma El registro del DS direcciona al segmento de datos

Segmento de pila (SS)


La

pila contiene los datos y direcciones que se necesitan guardar temporalmente o para el uso de sus llamadas subrutinas. registro del segmento de la pila (SS) direcciona el segmento de la pila

El

Los

registros de segmentos contienen la direccion inicial de cada segmento

REGISTROS

Los

registros del procesador se emplean para controlar las instrucciones en ejecucion, manejar direccionamiento, y proporcionar capacidad aritmetica. direccionables por medio de un nombre, los bits se numeran de derecha a izquierda

Son

REGISTRO DE SEGMENTO
Un

registro de segmento tiene 16 bits de longitud y facilita un area de memoria para el direccionamiento conocida como el segmento actual.

REGISTRO CS
Registro

CS El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro CS

REGISTRO DS
La

direccin inicial de un segmento de programa es almacenada en el registro DS

REGSITRO SS
El

registro SS permite la colocacion en memoria de una pila para almacenamiento temporal de direcciones y datos.

REGISTRO ES
Algunas operaciones con cadenas de caracteres utilizan regsitro extra de segmento para manejar el direccionamiento de memoria. Un registro ES esta asociado con un registro DI (indice)

REGISTRO FS y GS
Son

registros extras de segmento en los procesadores 80386 y posteriores.

REGISTRO DE APUNTADOR DE DIRECCIONES


El

registro apuntador de instrucciones (IP) contiene el desplezamiento de direcciones de la siguiente direccion que se ejecuta.

REGISTROS APUNTADORES
Los

registros apuntador de pila (SP) y BP (apuntador base) estan asociados con el registro SS y permiten al sistema acceder a datos de la pila

REGISTRO BP
Facilita

la referencia de parametros los cuales son datos y direcciones transmitidos via pila

REGISTROS DE PROPOSITO GENERAL


Los

registros de proposito general AX, BX, CX, y DX, con caballos de batalla del sistema, en el sentido que se puede direccionar como una palabara o como una parte de un byte.

La

parte izquiera es la parte alta La parte derecha es la parte baja

Registro AX
Es

el acumulador principal, usado para operaciones de E/S y la mayor parte de la aritmetica

REGISTRO BX
Es

conocido como registro base y es el unico de proposito general, usado para la transferencia de datos entre la memoria y el procesador

REGISTRO CX
Se

utiliza como contador de bucles, operaciones con cadenas y desplazamientos

REGISTRO DX
Se

utiliza para operaciones de multiplicacion y division junto con AX y en operaciondes de entrada y salida de puertos, su mitad inferior contiene el numero de puertos

REGISTROS INDICE
REGISTRO

destino)

SI (indice fuente) y DI (indice

Requerido para operaciones con cadenas

REGISTROS DE BANDERAS
Sirven

para indicar el estado actual de la maquina y el resultado del procesamiento.

OF (overflow): overflow indica desbordamiento DF (direccin): Designa direccin hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres. IF (Interrupcin): indica una interrupcin externa TF (trampa): Permite la operacin del procesador en modo de un paso SE (signo): Contiene el signo resultante de una operacin aritmtica ZF (cero): Indica el resultado de una operacin aritmtica o de una comparacin.

AF (acarreo auxiliar): contiene el acarreo del bit 3 de un dato de 8 bits, para aritmtica especializada PF (paridad) : Indica paridad, par o impar CF (acarreo) : Contiene el acarreo de un orden mas alto, despues de una operacin aritemtica.

DIRECCIONAMIENTO

El campo de operacin de una instruccin especifica la operacin que se debe realizar. Esta debe ser ejecutada sobre algunos datos almacenados en registros de la computadora, o sobre operandos almacenados en memoria

El

modo de direccionamiento especifica la forma de interpretar la informacin contenida en cada campo de operando para localizar, en base a esta informacin, el operando

Entonces los modos de direccionamiento de un procesador son las diferentes formas de transformacin del campo operando de la instruccin en la direccin del operando

Las tcnicas de direccionamiento se utilizan con la siguiente finalidad:


Dar

versatilidad Reducir el numero de bits del campo del operando

La disponibilidad de diferentes esquemas de direccionamiento da al programador flexibilidad para escribir programas eficientes en cuanto la numero de instrucciones y el tiempo de ejecucin.

Registro Implcito Pila

Inmediato

absoluto

Registro Contador de programa Memoria Apuntador de pila

Directo

Relativo a registros (indexados)

Base (base y desplazamiento)


ndice Autoincremental Autoindexado

Autodecrementa

Indirecto

Los modos de direccionamiento tambin pueden clasificarse en propios e impropios


Propios

es cuando el operando esta en una direccin concreta Impropio es cuando puede estar en registros del procesador.

Direccionamiento implcito
El

operando se especifica en la misma definicin de la instruccin.

La instruccin no lleva parmetros.


Particularmente

en instrucciones que no accesan memoria, o bien, tienen una forma especfica de accesarla. PUSHF, POPF, NOP

Ejemplos:

Direccionamiento inmediato
El

operando figura en la instruccin no el la direccin

Ejemplo:
MOV

AH, 9

Direccionamiento por registro


El

operando esta especificado con el direccionamiento directo por registro

Usa

solamente registros como operandos Es el ms rpido, pues minimiza los recursos necesarios (toda la informacin fluye dentro del EU del CPU) Ejemplo: MOV AX, BX

Direccionamiento directo
Uno

de los operandos involucra una localidad especfica de memoria El valor constante se tiene que buscar en memoria, en la localidad especificada. Es ms lento que los anteriores, pero es el ms rpido para ir a memoria, pues ya sabe la localidad, la toma de la instruccin y no la tiene que calcular. Ejemplo: MOV AH, Variable

Direccionamiento indirecto

Se usan los registros SI, DI como apuntadores El operando indica una localidad de memoria, cuya direccin est en SI o DI. Es ms lento que los anteriores, pues tiene que calcular la localidad Ejemplos: MOV AL, [SI]

Direccionamiento relativo
No

es necesario utilizar todos los bits de la direccin de memoria en el campo operando, basta con usar los bits precisos. es debido a que las direcciones referenciadas por el programa no estn alejadas unas de las otras.

Esto

Direccionamiento por base y desplazamiento


Formato: [BX o BP + SI o DI (opcionales)+constante (opcional)] BX o BP indica una localidad base de la memoria A partir de BX o BP, se puede tener un desplazamiento variable y uno constante La diferencia es el segmento sobre el que trabajan por defecto: BX por defecto en el segmento de datos BP por defecto en el segmento de pila. Ejemplos: MOV AX, [BX] MOV DX, [BX+2] MOV CX, [BX+DI] MOV DL, [BX+SI+3]

Direccionamiento indexado
La

direccin del operando tambin se calcula sumando un registro del CPU al campo del operando

Direccionamiento postincremental
La

direccin del operando se encuentra en un registro y este es incremental despus de acceder al operando.

Direccionamiento autodecremental
Para

obtener la direccin del operando hay que decrementar un registro en el tamao del operando.

MODOS Inmediato Directo por registro

UTILIDADES Operaciones con constantes Variables locales de procedimientos no recursivos

Indirecto por registro


Absoluto Relativo

Variables referenciadas a travs de apuntadores


Direcciones del sistema Variables globales

Indexado
Autoincremental

Acceso a vectores, matrices y cadenas


Desapilar parmetros de procedimientos Recorrido de vectores y cadenas Apilar parmentros de procedimientos Recorrido de vectores y cadenas hacia atrs

Autodecremental

.386 MODEL FLAT, STDCALL .DATA <tu data (informacin) inicializada> .DATA? <tu data no inicializada> .CODE <Etiqueta> <tu cdigo> End <etiqueta>

You might also like