{img1} |
английский словарь |
|
В этом случае можно легко отслежи-
вать поток управления в программе. В любом месте модуля должна
иметься возможнось увидеть точку входа в модуль и сказать: "Я
знаю значения регистров X,Y и Z в этой точке, потому что они ука-
зываются как...", и затем проследить функционирование модуля без
тревоги об искажении программы. |
panda |
|
|
Один вход обеспечивает возврат
потока управления в точку вызова при вызове модуля. По этой при-
чине, модульные программы почти всегда выполняются как структуры
CALL-RET.
Использование нескольких предложений RET в модуле не должно
нарушать правило одного входа, поскольку все инструкции RET возв-
ращают управление в одну и ту же точку. |
symantec |
|
{img3} |
программы архиваторы |
|
Точно также, переход к
общему RET в конце модуля, не изменяет структуру модуля, а добав-
ляет лишь коды в модуль и увеличивает его сложность. С другой
стороны, вход или выход из модуля не по этому правилу перечерки-
вает наибольшие преимущества модульного программирования: яс-
ность, удобство сопровождения.
Имеется исключение из правила входа в модуль. |
Навигационные системы |
|
|
английский словарь, 1с бухгалтерия, прокси сервера, немецко русский словарь, архиватор rar, .
win rar
|
Несмотря на самые лучшие
намерения большинства программистов, их программы могут иметь
настолько запутанные связи и громоздкие скопления кодов, что час-
то для их полного понимания требуется почти божественная проница-
тельность. Это утверждение ни в коем случае не рассматривается
как неуважение к специалистам в области программирования. Труд-
ности установления структуры являются результатом необходимости
одновременно иметь дело с большим количеством деталей. Имеются
два направления в решении этой проблемы. Первое направление сос-
тоит в упрощении используемого программного кода, замене сложной
инструкции последовательностью с более понятными структурами.
Технические приемы, разработанные в главе 1, следуя по данному
пути, уменьшают количество деталей, возникающих при программиро-
вании на языке Ассемблер. Однако, программисту все еще трудно
справляться с большим количеством функциональных деталей.
Второе направление состоит в применении технических приемов,
порожденных языками высокого уровня десятилетия тому назад. Кон-
цепции декомпозиции и модульного проектирования оказались приме-
нимыми и к программированию на языке Ассемблер. Эти концепции,
упоминаемые под общим заголовком "структурное проектирование",
позволяют программисту сегментировать общую программную задачу
таким образом, чтобы одновременно обходиться только охватываемым
контролем количеством деталей. Это и будет темой нашего последую-
щего обсуждения.
- 2-2 -
Опции проектирования
Модульное проектирование и декомпозиция относятся к процессу
расчленения больших проблем на более узкие, более управляемые
подпроблемы. Первым шагом проектирования является решение, в ка-
ком месте должна быть граница между этими подпроблемами.
Для получения максимальных преимуществ от использования мо-
дульного программирования каждая подпроблема или модуль должны
иметь один вход и один выход.
|
|
|