2

実行時にのみサイズがわかる配列に変数を格納するにはどうすればよいですか?この配列の要素にアクセスするにはどうすればよいですか?簡単なはずだと思いますが、道がわかりません。

私はCの動的配列のようなものを意味します。

4

3 に答える 3

0

関数の先頭でスタックに静的サイズのメモリを割り当てることもできます。

proc yourFunction stdcall param1:DWORD
local yourData[256]:BYTE
  ;...
endp

静的サイズ (上記の例では 256 バイト) であるという欠点がありますが、VirtualAlloc などのプラットフォーム固有の API を呼び出す必要はなく、関数を終了するとクリーンアップされます (割り当てられたデータを追跡する必要はありません)。 VirtualFree() を呼び出します)。

于 2016-07-01T11:51:49.700 に答える
0

どのオペレーティング システムかは明記されていませんが、Windows では、VirtualAllocを使用するとメモリの大まかなブロックを簡単に割り当てることができます。レジスタにロードしてベースアドレスとして使用できるポインタを返します。

invoke  VirtualAlloc,NULL,size,MEM_COMMIT+MEM_RESERVE,PAGE_READWRITE
mov     [eax],something
于 2012-01-25T17:15:47.247 に答える