Vous êtes sur la page 1sur 3

Bueno como primordial utilizamos directivas simplificadas, estas directivas son (.model .

code
.const .data, etc) . Las directivas simplificadas guardan muchos de los detalles de la definición del
segmento. Cada programa escrito en assembler tiene un módulo principal, en donde comienza la
ejecución del programa. Este módulo principal puede contener segmentos de código, de datos o
de pila que estén definidos con directivas simplificadas.

Cada módulo que usa directivas simplificadas debe comenzar con la directiva .MODEL.

La directiva .MODEL define los atributos que afectan al módulo completo: modelo de memoria,
ubicación de la pila, etc.

Como nuestro código de fuente tenemos una estructura de un módulo principal usando directivas
simplificadas:

Usamos la directiva .model

MODEL modelodememoria , opcionesdelmodelo

. model small ; modelo de memoria (pequeño)

.stack 64 ; definición de segmento de pila

.data ; comienzo del segmento de datos

.code ; comienzo de segmento de código

.stack 64

Bueno sabemos que es es el lugar de memoria donde se guardan las variables locales y
temporales. Se usa la directiva .STACK sólo cuando se escribe un módulo principal en assembler.
Esta directiva crea el segmento de pila que por defecto tiene un tamaño de 1K (este tamaño es
suficiente para la mayoría de los programas pequeños). Para crear un segmento de un tamaño
distinto del tamaño por defecto, se le da a la directiva .STACK un único argumento numérico
indicando el tamaño en bytes

PARA . DATA

En general, se guardan en el área de datos cercana aquellos que son más importantes y frecuentes
ya que su acceso es más rápido.
declaramos las variables globales y definimos que son byte es decir 8 bits
NUM1 db 0
NUM2 db 0
CICLO db 0

SUMA db 0
RESTA db 0
MULTIPLICACION db 0
DIVISION db 0
MODULO db 0

MARCOSUP db 10,13, "+++++++++++++++++++++++++++++++++++++++++++++++++++",'$'


msjn1 db 10,13, "Ingrese el primer numero= ",'$'
msjn2 db 10,13, "Ingrese el segundo numero= ",'$'

;mensaje para mostrar los resultados

msjnS db 10,13, "La SUMA es= ",'$'


msjnR db 10,13, "La RESTA= ",'$'
msjnM db 10,13, "La MULTIPLICACION es= ",'$'
msjnD db 10,13, "La DIVISION es = ",'$'
msjnMod db 10,13, "El MODULO es = ",'$'
REPETIR db 10,13, "PRESIONE 1 SI DESE REPETIR Y 0 SI DESEA SALIR = ",'$'

Bueno realiza un margen en lenguaje ensamblador

10es el código de control ASCII para el avance de línea, mientras 13que el código para el retorno
de carro. El código de control de avance de línea mueve el cursor a la siguiente línea, mientras que
el código de retorno del carro mueve el cursor al inicio de la línea. Juntos, los dos códigos de
control mueven el cursor al comienzo de la siguiente línea.

10 se llama como LF o Avance de línea o nueva línea y 13 se llama como CR o Retorno de carro.
Estos caracteres se utilizan para controlar la posición del cursor. El cursor de los 10 turnos en la
nueva línea con el mismo número de columna. y 13 devuelve el cursor a su posición inicial de línea
que está al comienzo de la línea! Por lo tanto, cada vez que haga uso de estos caracteres de
control como parte de la cadena o cualquier matriz. Desplaza el cursor a una nueva línea y al
comienzo de la línea

En otras palabras, la secuencia 13, 10es la línea estándar de MS-DOS que termina

. code
Que es el comienzo de segmento de código
En este caso el operador FAR informa al sistema que la dirección indicada es el punto de entrada
para la ejecución del programa, mientras que la directiva ENDP define el final del procedimiento.
Sin embargo, un segmento de código puede tener cualquier numero de procedimientos, todos
distinguidos por PROC y ENDP.

@DATA es una variable que mantiene el valor de la ubicación en la memoria donde


vive el segmento de datos

MOV DS,AXluego establecerá esa ubicación de memoria como la variable DSque es una
variable estándar (o se registra en este caso) para el ensamblaje 8086.

Descripción: Su función es la de sacar una cadena de caracteres ASCII por pantalla.

Uso: Entrada: AH = 9H
DS contiene el valor de la dirección del segmento del comienzo de la cadena de caracteres a
sacar.
DX contiene el offset de dicha cadena en el segmento anterior.
El último byte de la cadena de caracteres debe ser el caracter $, que no se muestra en
pantalla.
Salida: Ninguna
Registros afectados: AX

01h
Con esta función es muy sencillo leer un caracter del teclado, el código hexadecimal del caracter
leído se guarda en el registro AL. En caso de que sea un caracter extendido el registro AL
contendra el valor de 0 y será necesario llamar de nuevo a la función para obtener el código de
este caracter.

Vous aimerez peut-être aussi