Как уменьшить использование памяти ассемблером x86 для компиляции одного большого файла размером более 200 МБ?

Я пытаюсь собрать ASM-файл размером>200 МБ x86 с GAS в виртуальной машине с 4 ГБ оперативной памяти. К сожалению, ГАЗ быстро потребляет всю системную память и погибает. Я также пытался с --reduce-memory-overheads флаг, но результат тот же.

Я также пытался использовать yasm, но он также не хватает памяти.

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

Фактический код - это всего лишь одна большая функция, разделенная на несколько частей, поэтому теоретически можно разбить ее на отдельные функции (или они должны быть отдельными файлами?), Но есть ли способ собрать это без разделения функции? Я также мог бы выделить больше оперативной памяти, но я подозреваю, что это не очень поможет для объема доступной оперативной памяти (я бы подумал, что 4 ГБ будет достаточно).

0 ответов

Другие вопросы по тегам