[an error occurred while processing this directive]
|
Дело в том, что С компилер дурной. У него нет понятия far. И он не следит за размерами массивов и пересечениями ими границ стрниц в 64К слов. Вся адресная арифметика делается на AR - регистрах, а она там 16-разрядная. В результате, при обращении к элементам массива, который расположен так, что пересекает границу 64К слов возникают ошибки адресации, не диагностируемые компилятором. Чтобы избежать этого безобразия адресное пространство делят на страницы. При этом, если массивы меньше 64К - линкер их упихивает так, чтобы они не пересекали границ страниц, а если больше - ругается, что не смог разместить.
E-mail: info@telesys.ru