Я интересуюсь программированием на C на FreeDOS, изучая при этом некоторые базовые ASM. Позволит ли использование FreeDOS моей программе получить доступ к более чем стандартным 640 КБ памяти?
И, во-вторых, что касается ASM, я знаю, что на современных процессорах трудно программировать на сборке из-за сложности архитектуры ЦП, но ограничивает ли использование FreeDOS предположительно более простой 16-битный набор инструкций?
Без какого-либо расширителя программа может использовать максимум 640 КБ памяти в DOS. Но каждая структура будет ограничена размером сегмента, или 64 КБ. Это означает, что вы можете иметь 10 больших массивов размером 64 КБ. Конечно, вы можете использовать больше, имея несколько массивов в сегменте, но их общий размер не должен превышать размер сегмента
MS-DOS и FreeDOS используют области «HIMEM»:
Максимальный объем памяти, который может быть заархивирован таким образом, составляет около 800 КБ.
Используя XMS и EMS, вы можете использовать до 64M: