Язык программирования Форт



         

Глава 16. Программирование на форт-ассемблере - часть 22


В верхней части памяти вашей ЭВМ с адресом FF00 есть программа для управления координатографом. Она рисует арифметические символы и требует, чтобы в регистр СХ было занесено значение высоты символа в сотых долях дюйма, а в регистр DX - ASCII-код символа. Опишите слова с именем PLOTEMIT, для которого высота символа должна лежать во второй сверху позиции стека, а ASCII-код - на вершине и которое обращается к драйверу координатографа. 3. У вас имеется 16-канальный аналого-цифровой преобразователь, связанный с вашей микроЭВМ. Он опрашивается машинной программой по адресу FFOO- Номер канала может быть передан в программу через регистр АХ, и программа возвращает результат для данного канала в милливольтах через тот же регистр. Опишите слово GETDATA, которое воспринимает номер канала из стека и туда же кладет результат в милливольтах. То есть если в канале 8 напряжение равно 528 мВ, 8 GETDATA запишет в стек число 528. 4. Программа из упражнения 3 изменяет величины в регистрах SI и ВХ, и вы должны быть уверены, что они не изменились при завершении исполнения GETDATA. Чтобы решить эту проблему, переопределите GETDATA.

Выводы

Форт - быстродействующий язык, даже если не использовать ассемблер. А ассемблер труднее применить, чем Форт, и он работает только на одном типе процессора. Главная проблема использования ассемблера в Форте заключается не в том, чтобы вставить все, что можно, в CODE- слова, а в том, чтобы применять разумную мнемонику. Когда эффективен ассемблер? При выполнении двух условий: если вы хотите, чтобы программа работала быстрее, или когда вы обнаружили что-то, что вы не можете сделать в Форте (последнее случается редко). В обоих случаях вы захотите использовать ассемблер в минимальном объеме. Вы добьетесь этого, правильно факторизируя Форт-программу. Те небольшие части, которые используются большую часть времени, так как они исполняются снова и снова, могут быть оформлены в виде коротких code-слов. На ассемблере могут быть запрограммированы такие критические функции, как обслуживание аналого-цифрового преобразователя или координатографа, которые не поддерживаются фортом.


Содержание  Назад  Вперед