Записи - часть 9
001A 8A F0 MOV DH,AL ; Сохранение года в регистре DH
001C 8B 47 14 MOV AX,[BX].DATE
001F 25 01E0 AND AX,MASK MONTH
0022 B9 0005 MOV CX,MONTH
0025 D3 E8 SHR AX,CL
0027 8A D0 MOV DL,AL ; Сохранение месяца в регистре DL
0029 8B 47 14 MOV AX,[BX].DATE
002C 25 001F AND AX,MASK DAY ; Сохранение дня в регистре AL
002F CB RET
0030 RECORDS ENDP
0030 CODE ENDS
END RECORDS
Фиг. 6.16 Структуры и записи (продолжение)
И последнее замечание об использовании записей и структур. Мы
применяем эти средства, потому что они позволяют писать программы
не вникая в конкретные детали структуры данных. Используя для
описания данных оператор STRUC, мы можем рассматривать ссылки на
каждое из полей как смещение внутри структуры данных. При этом
программисту не нужно знать фактическое смещение этого поля. То же
самое верно и для записи из битов. Если программа использует
операторы MASK и сдвига, то распределение бит этого поля достаточно
задать только в соответствующем операторе RECORD.
Выигрыш от применения этих программных средств становится
очевидным при разработке больших систем, с которыми связано большое
число программистов или программ. В этом случае вы наверняка будуте
модифицировать структуры данных по мере разработки программ. Если
при написании программ пользоваться описанными структурными
моделями, то изменить их и связанные с ними программы будет
несложно: вы модифицируете определенную структуру данных, а затем
вновь транслируете все программы с использовнием этой структуры.
Сами же программы в изменениях не нуждаются. Можно поступить еще
проще, если хранить структуру данных, как отдельный файл, который
будет включаться в каждую ассемблируемую программу оператором
INCLUDE: таким образом вы будете иметь только одну версию структуры
данных. Описанные средства упрощают процесс создания большой
программы со всеми изменениями, возникающими при ее разработке.
Содержание Назад