Пр о ц е с с о р TMS 3 2 0C4 x
151
семблера создает коды команд и заполняет таблицы символов и перемещений.
Приведем короткий фрагмент программного кода с указанием в комментариях
действий, выполняемых ассемблером на первом проходе.
Пример ассемблерного файла FILE1.ASM
.version 40
; устанавливается ассемблирование для TMS320C4x
; в таблицу символов заносятся символы:
; .text со значением 0 и номером секции 1,
; .data со значением 0 и номером секции 2,
; .bss со значением 0 и номером секции 3
.ref
L200
; символ L200 заносится в таблицу символов с неопределенным
; значением
.global L100, DM
; символы L100 и DM заносятся в таблицу символов с
; неопределенным значением
.text
; программный счетчик секции 1 SPC(.text) устанавливается в 0
NOP
; SPC(.text) + 1
L100 CALL MP32
; символу L100 в таблице символов присваивается значение
; счетчика SPC(.text), равное единице и номер секции 1, символ
; MP32 заносится в таблицу символов с неопределенным
; значением, в таблицу перемещения для секции 1 записывает-
; ся новый элемент, содержащий значение SPC(.text) и
; индекс символа MP32 в таблице символов, затем SPC(.text) + 1
NOP
; SPC(.text) + 1
LDHI 0030h,AR0
; SPC(.text) + 1
.data
; ассемблер определил директиву смены программной секции,
; в результате используется новый счетчик секции
; SPC(.data), равный 0
DM .word L100
; символу DM присваивается значение 0, в таблицу переме-
; щения для секции 2 записывается элемент, содержащий
; значение SPC(.data), равное 0, и индекс символа L100,
; после чего SPC(.data) + 1
.word L200
; в таблицу перемещений секции 2 записывается элемент,
; содержащий SPC(.data), равное 1, и индекс символа L200,
; затем SPC(.data) + 1
.word MP32
; в таблицу перемещений секции 2 записывается элемент,
; содержащий SPC(.data), равное 2, и индекс символа MP32,
; после чего SPC(.data) + 1
.text
; ассемблирование в секцию .text,
; счетчик которой SPC(.text) равен 4
MP32 LDF 5.0, R2
; символу MP32 в таблице присваивается значение
; SPC(.text), равное 4, и номер секции 1, после чего SPC(.text) + 1
MPYF
AR0,R2
; SPC(.text) + 1
RETSU
; SPC(.text) + 1
.end
; завершение первого прохода ассемблирования
I...,141,142,143,144,145,146,147,148,149,150 152,153,154,155,156,157,158,159,160,161,...186