В листинговом файле содержится дополнительная информация, о которой
до сих пор в этой книге нигде не говорилось. После листинга
программы выводится таблица символических имен. На Фиг. 5.11
показан пример такой таблицы, которая является таблицей имен для
программы, приведенной на Фиг. 5.6. В этой таблице перечислены все
символические имена, определенные в программе, и кроме того,
указаны атрибуты каждого из них. Будучи очень формальной системой,
ассемблер хранит эту информацию и для удобства пользователя
приводит ее в листинговом файле. Символические имена
подразделяются при этом на метки, переменные и константы. В
таблице приведено значение каждого имени, если оно известно, и
кроме того, безотносительно к типу данных - его длина.
Microsoft (R) Macro Assembler Version 4.00 4/15/89 23:14:35
Фиг. 5.6 Пример использования функций ДОС Symbols-1
Segments and Groups:
N a m e Size Align Combine Class
CODE . . . . . . . . . . . . . . 02D0 PARA NONE
Symbols:
N a m e Type Value Attr
BAD_CLOSE_MSG . . . . . . . . . L BYTE 016D CODE
BAD_OPEN_MSG . . . . . . . . . . L BYTE 011E CODE
BAD_READ_MSG . . . . . . . . . . L BYTE 0153 CODE
BAD_WRITE_MSG . . . . . . . . . L BYTE 0138 CODE
CHANGE_RECORD . . . . . . . . . L NEAR 0260 CODE
CHARACTER_LOOP . . . . . . . . . L NEAR 0216 CODE
CHAR_BAD_MSG . . . . . . . . . . L BYTE 01AB CODE
CLOSE_OK . . . . . . . . . . . . L NEAR 02CE CODE
CREATE_OK . . . . . . . . . . . L NEAR 01FD CODE
DISK_TRANSFER_ADDRESS . . . . . L BYTE 0090 CODE
ERROR_EXIT . . . . . . . . . . . L NEAR 01E5 CODE
FCB . . . . . . . . . . . . . . L BYTE 005C CODE
FCB_BLOCK . . . . . . . . . . . L WORD 0068 CODE
FCB_CURRENT_RECORD . . . . . . . L BYTE 007C CODE
FCB_DATE . . . . . . . . . . . . L WORD 0070 CODE
FCB_DRIVE . . . . . . . . . . . L BYTE 005C CODE
FCB_EXT . . . . . . . . . . . . L BYTE 0065 CODE Length = 0003
FCB_FILE_SIZE . . . . . . . . . L DWORD 006C CODE
FCB_NAME . . . . . . . . . . . . L BYTE 005D CODE Length = 0008
FCB_RANDOM_RECORD . . . . . . . L DWORD 007D CODE
FCB_RECORD_SIZE . . . . . . . . L WORD 006A CODE
FCB_RESV . . . . . . . . . . . . L BYTE 0072 CODE Length = 000A
FILE_ERROR_MSG . . . . . . . . . L BYTE 0108 CODE
INPUT_BAD_MSG . . . . . . . . . L BYTE 0189 CODE
Фиг. 5.11 Таблица символических имен
для программы Фиг. 5.6 (начало)
KEYBOARD_BUFFER . . . . . . . . L BYTE 0103 CODE
KEYBOARD_ERROR . . . . . . . . . L NEAR 024C CODE
KEYBOARD_LOOP . . . . . . . . . L NEAR 0239 CODE
KEY_INPUT_OK . . . . . . . . . . L NEAR 0252 CODE
NO_FILE . . . . . . . . . . . . L NEAR 01EB CODE
PROGRAM_EXIT . . . . . . . . . . L NEAR 02BB CODE
PROGRAM_START . . . . . . . . . L NEAR 01CD CODE
RANDOM_RECORD_OK . . . . . . . . L NEAR 0282 CODE
RANDOM_WRITE_OK . . . . . . . . L NEAR 02B8 CODE
RECORD_SIZE . . . . . . . . . . Number 0020
WRITE_OK . . . . . . . . . . . . L NEAR 0233 CODE
173 Source Lines
173 Total Lines
57 Symbols
48738 Bytes symbol space free
0 Warning Errors
0 Severe Errors
Фиг. 5.11 Таблица символических имен
для программы Фиг. 5.6 (продолжение)