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. Перейдём к интерактивному режиму.


Footnotes

  1. Файлы устройств по умолчанию помещаются в каталог .mdk, создаваемый в вашем домашнем каталоге при первом запуске mixvm. Вы можете задать другой каталог, используя команду devdir при запуске mixvm в интерактивном режиме (see Команды конфигурирования)

  2. Программа 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

Эти переключатели доступны при работе gmixvm в режиме с разделением и позволяют включать и выключать показ соответствующих окон gmixvm.

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 символов. img/ss_symbols.jpg

Colors... Settings
Позволяет изменить цвета, отмечающие текущую строку кода и строки точек останова на вкладке MIXAL, равно как и цвет остальных строк исходного кода.

Change font Settings
Позволяет изменить шрифты, используемые в различных виджетах (командной приглашение, лог команд, MIX, MIXAL и устройства).

Device output... Settings
Открывает диалог, позволяющий задать формат, используемый для вывода содержимого двоичных блоковых устройств MIX. img/ss_devform.jpg

Возможные форматы: десятичный (-1234) и слово MIX (- 00 00 00 19 18).

Devices dir... Settings
Открывает диалог, позволяющий выбрать расположение файлов устройств MIX (по умолчанию ~/.mdk). img/ss_devdir.jpg

Вы можете также задать каталог устройств командой mixvm sddir (see Команды конфигурирования).

External programs... Settings
Эта команда меню открывает диалог, позволяющий задать команды, используемые для редактирования и компиляции исходных файлов на MIXAL. img/ss_extprog.jpg

Команды задаются в виде строк-шаблонов, где вместо управляющей подстроки %s будет подставлено реальное имя файла. Так, если вы хотите редактировать программы редактором vi, запущенным в xterm, вы должны ввести в соответствующем поле диалога шаблон команды xterm -e vi %s. Эти настройки могут также быть изменены командами mixvm sedit и sasm (see Команды конфигурирования).

Save Settings
Сохраняет текущие настройки.

Save on exit Settings
Отметьте этот переключатель, если вы хотите, чтобы gmixvm сохраняла свои настройки при каждом завершении работы.

About... Help
Выводит информацию о версии и авторских правах gmixvm.

В то же время, строка статуса показывает имя последнего загруженного файла MIX. Кроме того, если указатель мыши находится над строкой исходного файла на MIXAL, содержащей символы, в строке статуса появляется список этих символов и их значений.