Node:Литеральные константы, Previous:Локальные символы, Up:MIXAL
MIXAL допускает введение литеральных констант, которые автоматически
помещаются ассемблером в память по адресам после конца программы.
Литеральные константы обозначаются =wexp=, где wexp -
w-выражение (see W-выражения). Например, код:
L EQU 5
LDA =20-L=
вынуждает ассемблер добавить после конца программы инструкцию,
содержащую 15 (20-L) и ассемблировать вышеприведённый код
как инструкцию LDA a, где a обозначает адрес,
по которому помещается значение 15. Другими словами, скомпилированный
код эквивалентен следующему:
L EQU 5
LDA a
...
a CON 20-L
END start
Node:Неинтерактивный режим, Next:Интерактивный режим, Previous:Запуск программы, Up:Запуск программы
Для запуска mixvm в неинтерактивном режиме используйте флаг
-r. Так, для запуска программы hello.mix введите:
mixvm -r hello <RET>
в приглашении командной строки. Вы получите такой вывод:
MIXAL HELLO WORLD
Поскольку наша программа использует для вывода устройство MIX
номер 19 (see Написание исходного файла), вывод направляется
на стандартный вывод оболочки. При использовании любого другого
устройства MIX (диски, барабаны, строчный принтер и т.д.) mixvm
создаст файл, имя которого соответствует устройству (например,
disk4.dev) и запишет вывод туда1.
Виртуальная машина может также сообщить время выполнения программы,
в соответствии со временем (виртуальным), требуемым каждой инструкцией
(see Временные характеристики). Вывод статистики времени выполнения
включается флагом -t. Запуск
mixvm -t -r hello <RET>
даст следующий вывод:
MIXAL HELLO WORLD ** Execution time: 11
Иногда вы предпочтёте сохранять результаты работы вашей программы в
регистрах MIX, а не записывать их на устройствах. В таких случаях
будет полезен флаг mixvm -d, заставляющий mixvm
после выполнения загруженной программы выводить содержимое регистров
и флагов. Например, введя в приглашении оболочки следующую команду:
mixvm -d -r hello
вы получите такой вывод:
MIXAL HELLO WORLD rA: + 00 00 00 00 00 (0000000000) rX: + 00 00 00 00 00 (0000000000) rJ: + 00 00 (0000) rI1: + 00 00 (0000) rI2: + 00 00 (0000) rI3: + 00 00 (0000) rI4: + 00 00 (0000) rI5: + 00 00 (0000) rI6: + 00 00 (0000) Overflow: F Cmp: E
включающий, помимо вывода программы и времени выполнения, содержимое регистров MIX и значения триггера переполнения и флага сравнения (признаться, не слишком интересные в нашем примере).
Как можно видеть, неинтерактивный запуск программ накладывает много ограничений. Вы не можете ни заглянуть в память машины, ни выполнять инструкции программы по шагам или устанавливать точки останова2. Перейдём к интерактивному режиму.
Файлы устройств по
умолчанию помещаются в каталог .mdk, создаваемый в вашем
домашнем каталоге при первом запуске mixvm. Вы можете задать
другой каталог, используя команду devdir при запуске mixvm
в интерактивном режиме (see Команды конфигурирования)
Программа mixguile позволяет выполнять любое
сочетание команд mixvm (используя Scheme) неинтерактивно.
See Скрипты Scheme.
Node:Меню и строка статуса, Previous:Окно устройств MIX, Up:gmixvm
Меню даёт доступ к следующим командам:
| Load... | File |
Открывает диалог, позволяющий указать двоичный файл MIX, загружаемый в
память виртуальной машины. Эквивалентно команде mixvm load
(see Файловые команды).
|
| Edit... | File |
Открывает диалог, позволяющий указать исходный файл на MIXAL для
редактирования. Эквивалентно команде mixvm edit
(see Файловые команды). Используемая для редактирования команда
может быть задана в пункте меню Settings->External programs
или командой mixvm sedit.
|
| Compile... | File |
Открывает диалог, позволяющать указать исходный файл на MIXAL для
компиляции. Эквивалентно команде mixvm compile
(see Файловые команды). Используемая для компиляции команда
может быть задана в пункте меню Settings->External programs
или командой mixvm sasm.
|
| Exit | File |
| Завершает работу. |
| Toolbar(s) | View |
Включает/выключает показ панели(ей) инструментов в окне(ах) gmixvm
(в режиме с разделением будет несколько окон и, соответственно, несколько
панелей).
|
| MIX | View |
| MIXAL | View |
| Devices | View |
|
Эти переключатели доступны при работе |
| Split windows | View |
| One window | View |
|
Изменяет режим: одно окно либо раздельные окна. |
| Run | Debug |
Выполняет загруженную в данный момент программу MIX до следующей точки
останова. Эквивалентно команде mixvm run (see Команды отладки).
|
| Next | Debug |
Выполняет следующую инструкцию MIX. Эквивалентно команде mixvm
next (see Команды отладки).
|
| Clear breakpoints | Debug |
Снимает все установленные в данный момент точки останова. Эквивалентно
команде mixvm cabp.
|
| Symbols... | Debug |
Открывает диалог со списком определённых в загруженной программе MIX
символов.
|
| Colors... | Settings |
| Позволяет изменить цвета, отмечающие текущую строку кода и строки точек останова на вкладке MIXAL, равно как и цвет остальных строк исходного кода. |
| Change font | Settings |
| Позволяет изменить шрифты, используемые в различных виджетах (командной приглашение, лог команд, MIX, MIXAL и устройства). |
| Device output... | Settings |
Открывает диалог, позволяющий задать формат, используемый для вывода
содержимого двоичных блоковых устройств MIX.
Возможные форматы: десятичный (-1234) и слово MIX (- 00 00 00 19 18). |
| Devices dir... | Settings |
Открывает диалог, позволяющий выбрать расположение файлов устройств MIX
(по умолчанию ~/.mdk).
Вы можете также задать каталог устройств командой |
| External programs... | Settings |
Эта команда меню открывает диалог, позволяющий задать команды, используемые
для редактирования и компиляции исходных файлов на MIXAL.
Команды задаются в виде строк-шаблонов, где вместо управляющей подстроки
|
| Save | Settings |
| Сохраняет текущие настройки. |
| Save on exit | Settings |
Отметьте этот переключатель, если вы хотите, чтобы gmixvm
сохраняла свои настройки при каждом завершении работы.
|
| About... | Help |
Выводит информацию о версии и авторских правах gmixvm.
|
В то же время, строка статуса показывает имя последнего загруженного файла MIX. Кроме того, если указатель мыши находится над строкой исходного файла на MIXAL, содержащей символы, в строке статуса появляется список этих символов и их значений.