Почитал ссылочки от Jerri, одно место не понравилось от Стива Тернера:
Если бы была команда CALL (HL), то я неукоснительно соблюдал бы это правило. А так, как еще можно сделать вызов процедур по адресам, заданным в памяти блоками DEFW? Только подстановкой адреса непосредственно в машинный код после кода команды CALL? Это еще больше запутает код.Вот примерный список приемов плохого стиля:
...
3. Неправильное использование процедур.
Каждая процедура должна иметь один вход и один выход. Если Вам их нужно больше, то вернитесь на этап 2 и повторите проектирование.
Никогда не имитируйте вызов процедуры (CALL) путем перехода (JP) с последующей манипуляцией стеком. Прием слишком головоломный, чтобы пользоваться им часто. Всегда завершайте процедуру естественным путем (команда RET в конце процедуры).
Также, иногда бывает нужно войти в середину процедуры, а не в начало, чтобы не писать второй абсолютно одинаковый кусок процедуры.
И один выход RET из процедуры - тоже жестокость. А как же выходы по условиям RET Z, RET C и прочее, если надо в середине процедуры?




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

