Большинство программ сборки ARM, с которыми я сталкиваюсь, используют директивы .data и .text. Тем не менее, я заметил две вещи:Требуется ли текст и .data в сборке ARM?
Много раз сборочный код, сгенерированный самим GCC компилятор будет использовать только .text директиву, группировка переменных где-то в коде без .data директивы.
Даже если я не использую раздел .text, мои программы все еще компилируются и работают нормально.
Мой вопрос: необходимы эти директивы? Если да, то почему? Если да, то как мои программы по-прежнему работают без них?
Вы уверены, что ** переменные ** gcc-группы не являются ** константами **? Это иногда называют «.rodata» и т. Д. Эти разделы являются довольно стандартными, как '.bss'. Как отмечает Этьен, ваш * линкер * и ОС (или отсутствие) определяют, нужны они или нет. Например, с Linux, который анализирует файл * Elf *, они понадобятся. Для приложения * bare metal * вы можете вызывать разделы, которые вам нравятся, если они соответствуют нотации компоновщика. –