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



         

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


Полезно также знать, какой регистр используется для хранения WP, так как он будет всегда содержать CFA или PFA вашей программы-примитива, когда к ней произошло обращение. Заметьте, что существует много вариантов написания Форта, поэтому использование регистров и стеков должно быть известно для вашей системы, прежде чем вы сможете уверенно программировать слова-примитивы. К сожалению, некоторые поставщики Форта не сообщают вам об использовании внутренних регистров в документации. Таким образом, написание Форт-программ в машинных кодах содержит некоторое число досадных деталей, за которыми вы должны следить. Несмотря на это, машинные программы могут быть введены в Форт-программу весьма легко - вам нужно только внимательно следить за применением в Форте определенных регистров, особенно того, который используется в качестве указателя инструкции (IР). Если для вашей программы-примитива нужны все регистры, вы можете, конечно, запомнить значение IP в стеке (или в переменной) вплоть до момента занесения его в соответствующий регистр перед завершением работы вашей программы. Мы обсудим некоторые другие вопросы, которые требуют внимания, в следующем разделе. Даже с учетом этих досадных обстоятельств интерфейс между языком высокого уровня и машинной, программой намного проще реализовать в Форте, чем в любом другом языке.

Упражнения

Ответы для упражнений этой главы приведены для микропроцессоров Z-80 и 8088, но вы, вероятно, захотите выполнить их также на вашей собственной ЭВМ. если у вас другой ЦП. В этом случае проверьте результат путем сравнения вашего решения с пропечаткой поля параметров описания в вашем Форте там, где это возможно. 1. Предложите программы-примитивы и мнемонику для Z-80 н 8088 для стековых операндов. В этих упражнениях используйте только PUSH, POP и NEXT. a) DROP; б) DUP; в) OVER; г) ROT. 2. Версия F83 Лаксена и Перри имеет несколько нестандартных слов для работы со стеком, которые вы, возможно, захотите использовать. Одно из них, TUCK, действие которого заключается в "подсовывании" копии верхнего элемента стека под второй элемент сверху (n1 n2 - n2 n1 n2), является оператором, обратным по отношению к OVER.


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