ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 апреля
568109
Алехин Александр (22.12.2014 15:44, просмотров: 4974)
Программа перестала влезать в "нижнюю" часть памяти. В настройках указал модель памяти для кода Large. Думал все перекомпилирует и все заработает. Но не вышло. Появилась ошибка Register displacement out of range. Valid range is -32768 (-0x8000) to 65535 (0xFFFF). Source: CMP.W R14, ??vals_24(R15) Where $ = main + 0x8D0 [0x13450] Allowed range: 0xFFFF8000 - 0xFFFF Понимаю, что при индексации вышел за допустимый диапазон смещения относительно базового регистра. Видимо код использующий таблицу с константами и сама таблица слишком "далеко" друг от друга. Вопрос: что я должен указать компилятору что бы разместить эти таблицы рядом? Вообще, какие есть правила использования large модели кода.