MPLINK 3.80, Linker
Linker Map File — Created Sat Jan 08 23:09:26 2005
Section Info
Section Type Address Location Size(Bytes
STARTUP code 0x000000 program 0x000002
cinit romdata 0x000001 program 0x000004
TEXT code 0x000005 program 0x000078
BANK0 udata 0x000020 data 0x000007
TEMP udata 0x000050 data 0x000003
Program Memory Usage
Start End
0x000000 0x000002
0x000005 0x000040
63 out of 1024 program addresses used, program memory utilization is 6%
Symbols — Sorted by Name
Name Address Location Storage File
FINI 0x00002b program static sqr.asm
MAIN 0x000005 program static main.asm
SQR 0x000016 program extern sqr.asm
SQR_CONT 0x000025 program static sqr.asm
SQR_END 0x00003f program static root.asm
SQR_LOOP 0x00001b program static sqr.asm
SQR_LOOP 0x000030 program static root.asm
SQR_ROOT 0x00002c program extern root.asm
COUNT 0x000052 data static root.asm
I 0x000050 data static root.asm
NUM_1 0x000020 data static main.asm
NUM_2 0x000021 data static main.asm
RMS 0x000024 data static main.asm
SQUARE 0x000025 data extern sqr.asm
SUM 0x000022 data extern main.asm
X 0x000050 data static sqr.asm
X_COPY_H 0x000052 data static sqr.asm
X_COPY_L 0x000051 data static sqr.asm
Во второй таблице выводится информация об идентификаторах, используемых в итоговой программе. Приводится информация о месте расположения каждого идентификатора в памяти программ или данных, а также имя исходного файла, в котором он объявлен. Глобальные идентификаторы помечаются словом extern, а идентификаторы локальных переменных помечаются словом static (к ним относятся и автоматические переменные, такие как COUNT и X_COPY_H, которые располагаются в регистре h’52’).
Итоговый файл, приведенный в Листинге 8.7, представляет собой обычный исполнимый файл в машинных кодах, который можно загрузить в память программ и запустить обычным образом.
: 020000000528D1
: 040002000034003492
: 06000А0020081620260864
: 10001000А3002508А200210816202608А30703181С
: 10002000А20А2508А2072С20А4006300А501А601АЕ
: 10003000D000D100D2010310D00C031C2528510898
: 10004000A6070318A50A5208A5070310D10DD20D63
: 10005000D008031D1B280800D201D001D101D10A0C
: 100060005108A3025008031C013EA202031C3F28B2
: 10007000D2 0A5108023E0318D0 0ADl003028520893
: 02008000080076
: 00000001FF
Разработка, тестирование и отладка программного обеспечения требуют большого числа различных программных средств. С некоторыми из них мы уже познакомились — это редактор, ассемблер и компоновщик. На самом деле существует много других пакетов программ, таких как компиляторы языков высокого уровня (см. главу 9), симуляторы и программаторы EEPROM. Все эти пакеты условно показаны на Рис. 8.5. Настройка данных программных средств и обеспечение взаимодействия между ними в индивидуальном порядке может представлять собой достаточно сложную задачу, особенно при использовании продукции разных производителей. В последнем случае обеспечение совместимости между различными форматами промежуточных файлов может превратиться в сущий кошмар.