| [Top] | [Contents] | [Index] | [ ? ] |
Русский перевод: Искусство программирования -- М.: Издательский дом "Вильямс", 2001.
Русский перевод Искусство программирования опубликован Издательским домом "Вильямс"
Примечание: на этой платформе Кристоф тестировал только
mixvm и mixasm, с использованием gcc 2.95.3-2,
GLIB 1.2.10 и GNUreadline 4.1-2. Он сообщил о том, что
при первой попытке история команд не работала. Если вы обнаружите
проблемы с функционированием history/readline, попробуйте использовать
более новую или установленную вручную версию readline.
Реальный адрес памяти, на который ссылается инструкция, получается добавлением к ADDRESS значения регистра `rI', на который ссылается INDEX.
В общем случае, `[X]' будет обозначать содержимое сущности `X'. Так, по определению, `V = [M](MOD)'.
В оригинальном определении Кнута доступны и другие управляющие операции, но при реализации блочных устройств дисковыми файлами, как это сделано в эмуляторе MDK, они не имеют смысла. По тем же причинам устройства MDK всегда готовы к работе, поскольку все операции ввода/вывода производятся посредством синхронных системных вызовов.
Вы будем называть их вместе инструкциями MIXAL.
На самом деле определение MIXAL Кнута устанавливает
номер колонки, в которой должна начинаться каждая часть инструкции.
Ассемблер MIXAL в составе MDK, mixasm, не накладывает
такого ограничения.
Автор благодарит Филиппа Э. Кинга за то, что тот указал на два специальных способа использования локальных символов
Если директива ORIG не используется, программа
будет загружена виртуальной машиной по адресу 0. ORIG
позволяет расположить исполняемый код по вашему усмотрению.
В определении Кнута операнд всегда начинается
с фиксированной колонки, и поэтому использование кавычек необязательно.
Поскольку mixasm не содержит этого ограничения, для устранения
неоднозначности разбора этого операнда в случаях, когда он содержит
пробелы, используются кавычки. Имейте в виду, что двойные кавычки не
входят в набор литер MIX, и поэтому экранировать литеры внутри
операндов ALF не нужно.
Файлы устройств по
умолчанию помещаются в каталог `.mdk', создаваемый в вашем
домашнем каталоге при первом запуске mixvm. Вы можете задать
другой каталог, используя команду devdir при запуске mixvm
в интерактивном режиме (see section 6.2.4 Команды конфигурирования)
Программа mixguile позволяет выполнять любое
сочетание команд mixvm (используя Scheme) неинтерактивно.
See section 3.4.5 Скрипты Scheme.
Вывод
статистики времени может быть отключен командой timing
(see section 6.2.4 Команды конфигурирования).
Можно заметить, что
ловушки останова могут быть реализованы ловушками, связанными с командами
mix-run и mix-next. Собственно говоря, они действительно
реализованы таким образом, если вы любопытны, взгляните на файл
`каталог_установки/share/mdk/mix-vm-stat.scm'.
`mixvm.el' -- вклад в создание MDK Филиппа Э. Кинга. `mixvm.el' основана на изучении gdb, perldb и pdb, как указано в `gud.el' и `rubydb3x.el', распространяемых с исходным кодом языка Ruby.
Командное приглашение по умолчанию, `MIX >' может
быть изменено командой prompt (see section 6.2.4 Команды конфигурирования)
Возможности readline будут доступны, если вы скомпилировали MDK с поддержкой readline, т.е. если GNU readline установлена в вашей системе. Как правило, в системах GNU/Linux и BSD это так.