Сборка - зарезервировать пространство массива во время программы? - PullRequest
0 голосов
/ 14 декабря 2011

Я нахожусь в середине программы сборки и хочу объявить массив. У меня есть размер массива в регистре, и я знаю тип элементов (то есть, сколько байтов каждый элемент) - как я могу зарезервировать пространство в куче для этого массива (и затем получить доступ к определенным элементам)? Нужно ли мне звонить malloc?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2011

Я думаю, что лучший способ - это действительно вызывать malloc. Рассмотрим этот код для FASM:

 include 'win32a.inc' 
 ...
 invoke  malloc,eax
 mov     [myHeap],eax 

Выезд: http://www.delorie.com/djgpp/doc/ug/asm/calling.html

0 голосов
/ 14 декабря 2011

"malloc ()" является созданием библиотеки времени выполнения C.

Вы, конечно, можете вызывать "malloc ()" из сборки ... при условии, что вы сначала инициализировали систему времени выполнения Си.

C и C ++ оба делают это автоматически для вас; до того, как "main ()" будет вызван.

Например, вот одна ссылка о том, как сделать это на платформе на основе ARM:

Вот ссылка от Microsoft о том, какие стандартные функции C следует остерегаться в Windows:

...