Пр о ц е с с о р TMS 3 2 0C4 x
          
        
        
          
            153
          
        
        
          имеющим смещение 2. В данном случае требуется полный 32-разрядный адрес,
        
        
          поэтому в код секции .data записывается значение символа MP32 (4), а индекс
        
        
          символа в элементе таблицы перемещений устанавливается равным индексу
        
        
          символа .text. Такая ссылка требует коррекции при перемещении, она помеча-
        
        
          ется в листинге программы специальным флагом, и элемент таблицы переме-
        
        
          щений не удаляется. После этого на символ MP32 нет больше ссылок из таблиц
        
        
          перемещений, и он не объявлен глобальным, поэтому символ удаляется из таб-
        
        
          лицы. Аналогично обрабатываются символы L100 и DM, но они объявлены
        
        
          глобальными и из таблицы символов не удаляются. Символ L200 объявлен
        
        
          внешним, поэтому адресная ссылка на него не может быть разрешена ассемб-
        
        
          лером. Символ помечается в листинге специальным флагом.
        
        
          Таким образом, после второго прохода ассемблера в объектном файле
        
        
          приведенного примера имеется:
        
        
          •
        
        
          разрешенная ссылка, не требующая коррекции при перемещении;
        
        
          •
        
        
          две разрешенных, но требующих при перемещении коррекции;
        
        
          •
        
        
          одна неразрешенная внешняя ссылка.
        
        
          Окончательное содержимое объектного файла примера показано на
        
        
          рис.Г.3, пример листинга приведен далее. В комментариях листинга отмечены
        
        
          все встретившиеся ассемблеру адресные ссылки.
        
        
          Ин-
        
        
          декс
        
        
          Имя
        
        
          символа
        
        
          N
        
        
          секции
        
        
          Значе-
        
        
          ние
        
        
          0
        
        
          .text
        
        
          1
        
        
          0
        
        
          1
        
        
          .data
        
        
          2
        
        
          0
        
        
          2
        
        
          .bss
        
        
          3
        
        
          0
        
        
          3
        
        
          L200
        
        
          0
        
        
          0
        
        
          4
        
        
          L100
        
        
          1
        
        
          1
        
        
          5
        
        
          DM
        
        
          2
        
        
          0
        
        
          0 0
        
        
          3 1
        
        
          0 2
        
        
          CALL MP32
        
        
          0
        
        
          1 2
        
        
          2
        
        
          3
        
        
          4
        
        
          5
        
        
          6
        
        
          Таблица символов
        
        
          Таблицы
        
        
          перемещений
        
        
          Секция .text
        
        
          Секция .data
        
        
          Секция .text
        
        
          0
        
        
          1’
        
        
          .word MP32
        
        
          1
        
        
          0!
        
        
          2
        
        
          4’
        
        
          Секция .data
        
        
          .word L200
        
        
          .word L100
        
        
          Код секций
        
        
          
            Рис.Г.3. Второй проход ассемблирования