Académique Documents
Professionnel Documents
Culture Documents
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:
.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
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.
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.
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.