Programación General > ASM (Ensamblador)
Traduccion De Codigo C A Ensamblador.
Eternal Idol:
--- Cita de: "Instru" --- Bueno y otra duda medio rara sobre la traduccion de codigo.
No se si sea asi en las arquitecturs x86 pero en z80 no existen las instrucciones DB, DW, etc..para "declarar variables"
En primero lugar como se manejarian estas instrucciones? Y en si un int un char, etc como se manejarian?
Saludos
--- Fin de la cita ---
Esas no son instrucciones, en realidad son directivas del ensamblador, su objetivo es justamente "declarar variables", basicamente reservar una cantidad de bytes en una determinada posicion que puedan ser referenciados desde el codigo de assembly por su nombre. Estos bytes los reserva luego el S.O. de acuerdo al formato de ejecutable que tenga, en Windows muy probablemente uses la seccion .data y estas variables estaran tanto en memoria como en el ejecutable en si mismo en disco.
Un ejemplo enano:
--- Código: Text --- .386.model flat, stdcall .data edad dd 760.codemain: mov eax, edadretend main
ml dd.asm
dumpbin /all dd.obj
Vas a ver algo parecido a:
SECTION HEADER #2
.data name
4 virtual size
2000 virtual address (00402000 to 00402003)
200 size of raw data
400 file pointer to raw data (00000400 to 000005FF)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
C0000040 flags
Initialized Data
Read Write
RAW DATA #2
00402000: F8 02 00 00 ø...
Y 0x2F8 es justamente 760.
Navegación
[*] Página Anterior
Ir a la versión completa