Llevo googleandolo 20 minutos y no logro encontrar una forma de que esto:
_struct struct
data0 db 64 dup (?)
data1 db 64 dup (?)
_struct ends
funcione correctamente. Cuando compruebo el tamaño de _struct es 64 (cuando deberia ser 128).
¿Como declaro un array dentro de una estructura correctamente en MASM?
Segun la MSDN:
Citarname STRUCT ⟦alignment⟧ ⟦, NONUNIQUE⟧
field-declarations
name ENDS
https://docs.microsoft.com/es-es/cpp/assembler/masm/struct-masm?view=msvc-160 (https://docs.microsoft.com/es-es/cpp/assembler/masm/struct-masm?view=msvc-160)
¿Cual es exactamente la sintaxis de
field-declarations cuando se trata de un array?
Gracias de antemano.
Saludos.
¿En que te basas para afirmar que la estructura ocupa 64 bytes? El WinDbg no concuerda:
0:000> dt hola!_struct /v
struct _struct, 2 elements, 0x80 bytes
+0x000 data0 : UChar
+0x040 data1 : UChar
mov eax, sizeof _struct
Eso pone 0x80 en eax.
Bueno, 20 minutos perdidos...
Me basada en la salida de esto:
invoke printf, __txt ("%d", 0dh, 0ah), sizeof _struct
que producia 128 con dos arrays de 128 bytes, pero creo que habia escrito algo mal porque ahora si se ve 256... :huh: