โ๏ธVARIABLES Y CONSTANTES
Asignacion de Espacio de Almacenamiento para Datos Inicializados:
La sintaxis para la declaracion de asignacion es:
[variable-name] Define-directiva Initial-value [,initial-value]Donde, variable-name es el identificador de cada espacio de almacenamiento. Se asocia un valor de compensacion pada cada nombre de variable definido en el segmento de datos.
Hay cinco formas basicas :
DB
Define Byte
allocates 1 byte
DW
Define Word
allocates 2 bytes
DD
Define Doubleword
allocates 4 bytes
DQ
Define Quadword
allocates 8 bytes
DT
Define Ten Bytes
allocates 10 bytes
Ejemplos de algunos de los usos de estas directivas:
choise db 'y'
number dw 12345
neg_number dw -12345
big_number dq 123456789
real_number1 dd 1.234
real_number2 dq 123.456Cada byte se almacena como su valor ASCII en hexadecimal.
Cada valor decimal se convierte automaticamente a su equivalente binario de 16 bits y se almacena como su numero hexadecimal .
El procesador utiliza el ordenamiento de bytes little-endian.
Los numeros negtivos se convierten en su representacion en complemento a 2.
Los numeros de punto flotante cortos y largos se representan usando 32 a 64 bits.
Asignacion de almacenamiento para datos no inicializados
Las directivas de reserva se utilizan para reservar espacio para datos no inicilaizados. Las directivas de reserva toman un solo operando que especifica el numero de unidades de espacio a reservar. Cada directiva de definicion tiene una reserva relacionada.
Hay cinco formas basicas:
RESB
Reserve a Byte
RESW
Reserve a Word
RESD
Reserve a Doubleword
RESQ
Reserve a Quadword
REST
Reserve a Ten Bytes
Multiples Inicializaciones
La directiva TIMES permite ultiples inicializaciones al mismo valor,. Por ejemplo, una matriz denominada marcas de tamano 9 se puede definir e inicializar a 0 usando la siguiente declaracion:
La directiva TIMES es util para matrices y tablas. Por ejemplo:
Constantes
En esto tenemos tres directivas:
EQU
%assing
%define
EQU:
La directiva EQU se utiliza para definir constantes. La sintaxis de la directiva EQU es la siguiente:
Por ejemplo:
Luego puede usar este valor constante en el codigo, como:
El operador de una instruccion EQU puede ser una expresion:
El segmento de codigo anterior definiria AREA como 200.
Ejemplo:
Veamos el uso ilustrado de la directiva EQU:
%assing:
esta directiva se puede usar para definir constantes numericas como equ. esta directiva permite la redifinicion. Por ejemplo, puede definir la constante TOTAL:
Mas adelante en el codigo, puede redefinirlo:
%define
Esta directiva permite tanto constantes numericas como de cadena. Esta directiva es similar a #define en C. Por ejemplo, puede definir la constante PTR como:
El codigo anterior reemplazar PTR por [EBP+4].
Esta directiva tambien permite la redefinicion y distingue entre mayuscula y minuscula.
รltima actualizaciรณn