実行時にのみサイズがわかる配列に変数を格納するにはどうすればよいですか?この配列の要素にアクセスするにはどうすればよいですか?簡単なはずだと思いますが、道がわかりません。
私はCの動的配列のようなものを意味します。
関数の先頭でスタックに静的サイズのメモリを割り当てることもできます。
proc yourFunction stdcall param1:DWORD
local yourData[256]:BYTE
;...
endp
静的サイズ (上記の例では 256 バイト) であるという欠点がありますが、VirtualAlloc などのプラットフォーム固有の API を呼び出す必要はなく、関数を終了するとクリーンアップされます (割り当てられたデータを追跡する必要はありません)。 VirtualFree() を呼び出します)。
どのオペレーティング システムかは明記されていませんが、Windows では、VirtualAllocを使用するとメモリの大まかなブロックを簡単に割り当てることができます。レジスタにロードしてベースアドレスとして使用できるポインタを返します。
invoke VirtualAlloc,NULL,size,MEM_COMMIT+MEM_RESERVE,PAGE_READWRITE
mov [eax],something