由于某种原因,我无法正确地将其中的结构放入fasm中。这是问题所在,我想说我有这样的结构:
path('product_view', { product: product })
$this->generateUrl('product_view', ['product': product]);
据我所知,要在堆栈中声明这个,我需要写这样的东西:
struct IMAGE_SECTION_HEADER
_Name db IMAGE_SIZEOF_SHORT_NAME dup (?)
union
PhysicalAddress dd ?
VirtualSize dd ?
ends
VirtualAddress dd ?
SizeOfRawData dd ?
PointerToRawData dd ?
PointerToRelocations dd ?
PointerToLinenumbers dd ?
NumberOfRelocations dw ?
NumberOfLinenumbers dw ?
Characteristics dd ?
ends
N 应该是结构的大小,但我怎样才能获得结构大小?据我所知,没有sizeof,我是否需要手动计算每个结构大小以在堆栈内存中声明它?另外,我如何使用宏声明它在堆栈框架内?
答案 0 :(得分:0)
你不需要这个N,结构从esp开始,长度为N个字节。你只需要在堆栈上分配这个结构,所以这应该工作:
start:
virtual at esp
@@:
section IMAGE_SECTION_HEADER
IMAGE_SECTION_HEADER_SIZE = $ - @b
end virtual
sub esp, IMAGE_SECTION_HEADER_SIZE ;allocate local buffer
lea eax, [section]
...
add esp, IMAGE_SECTION_HEADER_SIZE ;;free local buffer