|
В листинговом файле содержится
дополнительная информация, о которой
до сих пор в этой книге нигде не
говорилось.После листинга
программы выводится таблица символических
имен.На Фиг. 5.11
показан пример такой таблицы, которая
является таблицей имен для
программы, приведенной на Фиг. 5.6.В этой таблице перечислены все
символические имена, определенные в
программе, и кроме того,
указаны атрибуты каждого из них.Будучи очень формальной системой,
ассемблер хранит эту информацию и для
удобства пользователя
приводит ее в листинговом файле.Символические имена
подразделяются при этом на метки,
переменные и константы.В
таблице приведено значение каждого имени,
если оно известно, и
кроме того, безотносительно к типу данных
- его длина.
Microsoft (R) Macro AssemblerVersion 4.004/15/89 23:14:35
Фиг. 5.6 Пример использования
функций ДОСSymbols-1
Segments and Groups:
N a m e SizeAlignCombine Class
CODE . . . . . . . . . . . . . .02D0PARANONE
Symbols:
N a m e TypeValueAttr
BAD_CLOSE_MSG. . . . . . . . .L BYTE016DCODE
BAD_OPEN_MSG . . . . . . . . . .L BYTE011ECODE
BAD_READ_MSG . . . . . . . . . .L BYTE0153CODE
BAD_WRITE_MSG. . . . . . . . .L BYTE0138CODE
CHANGE_RECORD. . . . . . . . .L NEAR0260CODE
CHARACTER_LOOP . . . . . . . . .L NEAR0216CODE
CHAR_BAD_MSG . . . . . . . . . .L BYTE01ABCODE
CLOSE_OK . . . . . . . . . . . .L NEAR02CECODE
CREATE_OK. . . . . . . . . . .L
NEAR01FDCODE
DISK_TRANSFER_ADDRESS. . . . .L
BYTE0090CODE
ERROR_EXIT . . . . . . . . . . .L NEAR01E5CODE
FCB. . . . . . . . . . . . . .L
BYTE005CCODE
FCB_BLOCK. . . . . . . . . . .L
WORD0068CODE
FCB_CURRENT_RECORD . . . . . . .L BYTE007CCODE
FCB_DATE . . . . . . . . . . . .L WORD0070CODE
FCB_DRIVE. . . . . . . . . . .L
BYTE005CCODE
FCB_EXT. . . . . . . . . . . .L
BYTE0065CODELength = 0003
FCB_FILE_SIZE. . . . . . . . .L DWORD 006CCODE
FCB_NAME . . . . . . . . . . . .L BYTE005DCODELength
= 0008
FCB_RANDOM_RECORD. . . . . . .L DWORD 007DCODE
FCB_RECORD_SIZE. . . . . . . .L WORD006ACODE
FCB_RESV . . . . . . . . . . . .L BYTE0072CODELength
= 000A
FILE_ERROR_MSG . . . . . . . . .L BYTE0108CODE
INPUT_BAD_MSG. . . . . . . . .L BYTE0189CODE
Фиг. 5.11 Таблица символических имен
для программы Фиг. 5.6 (начало)
KEYBOARD_BUFFER. . . . . . . .L BYTE0103CODE
KEYBOARD_ERROR . . . . . . . . .L NEAR024CCODE
KEYBOARD_LOOP. . . . . . . . .L NEAR0239CODE
KEY_INPUT_OK . . . . . . . . . .L NEAR0252CODE
NO_FILE. . . . . . . . . . . .L
NEAR01EBCODE
PROGRAM_EXIT . . . . . . . . . .L NEAR02BBCODE
PROGRAM_START. . . . . . . . .L NEAR01CDCODE
RANDOM_RECORD_OK . . . . . . . .L NEAR0282CODE
RANDOM_WRITE_OK. . . . . . . .L NEAR02B8CODE
RECORD_SIZE. . . . . . . . . .Number0020
WRITE_OK . . . . . . . . . . . .L NEAR0233CODE
173 SourceLines
173 TotalLines
57 Symbols
48738 Bytes symbol space free
0 Warning Errors
0 SevereErrors
Фиг. 5.11 Таблица символических имен
для программы Фиг. 5.6 (продолжение)
|