RS
Size: a a a
RS
A
RS
A
RS
A
s
include 'macro/proc32.inc'выхлоп symbols:
proc x
local thisislocal:DWORD
endp
call x
x: 0x0000000000000000, defined in ...^^^ А вот это локальная переменная, но она потеряла имя по пути, и его надо доставать из данных препроцессора. Поэтому я и говорю, что будет зависеть от реализации макросов.
flag?1: 0x0000000000000000, defined in ...
loc?6: 0x0000000000000004, defined in ...
localbytes?4: 0x0000000000000004, defined in ...
parmbytes?3: 0x0000000000000000, defined in ...
x%: 0x0000000000000000, defined in ...
current?5: 0x0000000000000004, defined in ...
..var?7: -0x0000000000000004+ebp, defined in ...
RS
RS
RS
A
pal ...
RS
pal ...
struct RGB
r rb 1
g rw 1
b rd 1
ends
size_of_rgb dq $-RGB
struct_arrea rb size_of_rgb*5
;Доступ к экземпляру 1
lea RAX, [struct_arrea]
mov RBX, [RAX+rgb.r] доступ к члену R первого экземпляра
RS
RS
RS
СБ
RS
struct RGB
r rb 1
g rw 1
b rd 1
ends
size_of_rgb dq $-RGB
struct_arrea rb size_of_rgb*5
;Доступ к экземпляру 1
lea RAX, [struct_arrea]
mov RBX, [RAX+rgb.r] доступ к члену R первого экземпляра
A
pal rb size.RGB*5
mov bx,pal
mov ax,word[bx+RGB.g]
add bx,size.RGB*3
s
struct RGB
r rb 1
g rw 1
b rd 1
ends
size_of_rgb dq $-RGB
struct_arrea rb size_of_rgb*5
;Доступ к экземпляру 1
lea RAX, [struct_arrea]
mov RBX, [RAX+rgb.r] доступ к члену R первого экземпляра
sizeof.ИМЯСТРУКТУРЫ
автоматически создаётся фасмом. Можно сделать что-нибудь типа:struc array spec* {
match type[count],spec \{
virtual
. type
end virtual
rept count index:0 \\{
\\.\\#index type
\\}
\}
}
xxx array RECT[3]
mov eax,[xxx.0.left]
mov ecx,[xxx.1.top]
mov edx,[xxx.2.right]
lea ecx,[xxx+sizeof.RECT*2]
A