В разделе 3.3.1 было описано несколько вариантов подпрограмм построения строки, каждый из которых применим в конкретных случаях. Все они совместимы по расположению входных параметров в регистрах. Поэтому в пример 3.21 можно подставить имя любой из них, но изменять каждый раз текст или использовать несколько вариантов примера 3.21, различающихся именем вспомогательной подпрограммы, не целесообразно. Проще ввести дополнительный параметр, являющийся адресом вызываемой подпрограммы.
Лучше всего его задавать в регистре Ьр, в виде адреса нужной подпрограммы, а в тексте примера 3.21 вместо команды call drawiine записать call bp, как это указано в комментарии. Если вспомогательные подпрограммы
включены в текст задачи, то для формирования адреса используется команда lea, например:
lea bp, drawline ; для рисования 256-цветных рисунков
lea bp, drwlin4 ; для рисования 16-цветных рисунков
lea bp, drwlinl ; для рисования двухцветных рисунков
lea bp, horline ; для закрашивания прямоугольной области
Таким образом, мы получили универсальную процедуру, позволяющую:
При рисовании, сохранении или восстановлении содержимого видеопамяти прямоугольная область может содержать не более чем 65 536 точек. По существу это единственное ограничение описанной процедуры. Вы можете составить подпрограммы для более сложных манипуляций со строками небольших рисунков. При этом должно соблюдаться только одно требование — по расположению параметров в регистрах они должны быть совместимы с описанными выше.