Definiciones de datos ensamblador
Definición de datos
Las directivas básicas para definir datos son las siguientes:
DB Define Byte, 1 byte
DW Define Word, 2 bytes
DD Define DoubleWord (4 bytes)
DQ Define Quad Word (8 bytes)
DT Define Ten Bytes (10 bytes; aunque parezca muy raro, cuando veas el coprocesador no podrás vivir sin ella)
Ejemplos:
db'Soy una cadena' | ;es cierto, es una cadena |
dw 12,1 | ;0C00h 0100h (ordenación Intel, no se te olvide) |
dt 3.14159265359 | ;representación en coma flotante de 10 bytes PI |
Lo dedefinir números reales se puede hacer con DD (precisión simple, 32 bits), DQ (precisión doble, 64 bits) y DT (a veces llamado real temporal, una precisión de la leche, 80 bits; uno para elsigno, 64 para la mantisa y 15 para el exponente o_O'). Los caracteres ascii van entrecomillados con ''; cuando el ensamblador encuentre un caracter entre comillas simples lo sustituyepor el valor numérico del código ascii correspondiente.
Para reservar zonas amplias de memoria se emplean RESB y familia, que lo que hacen es dejar hueco para N bytes, palabras (RESW),palabras dobles (RESD), palabras cuádruples (RESQ) o bloques de 10 bytes (REST).
resb 10 | ;deja un hueco de 10 bytes sin inicializar |
resq 4*4 DUP (1) | ;espacio para una matriz 4x4(16 reales de precisión doble) |
Una directiva muy peculiar, de uso muy esporádico pero muy interesante, es INCBIN; lo que hace es incluir dentro del código el contenido binario de unarchivo dado. Puede ser útil, por ejemplo, para incrustar pequeñas imágenes o logotipos dentro del ejecutable:
incbin "datos.dat" | ;ensambla introduciendo datos.dat en este punto |incbin "datos.dat",100 | ;incluye datos.dat, excepto los primeros 100 bytes |
incbin "datos.dat",100,200 | ;incluye los 200 bytes siguientes a los 100 primeros de datos.dat |
| |
Regístrate para leer el documento completo.