Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учеб. пособие по ОЭВМ.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
4.34 Mб
Скачать

Описание языка mcl.

1. Описание языка mcl.

Язык микрокоманд MCL представляет собой "BASIC-подобный" язык программирования высокого уровня. Он включает в себя:

- операторы ввода-вывода,

- операторы перехода,

- операторы вызова подпрограмм,

- операторы цикла,

- условный оператор;

поддерживает достаточный набор типов данных:

- простые переменные,

- тип регистр,

- тип структура,

- тип память;

и операций над объектами этих типов:

- арифметические,

- побитовые,

- сдвига,

- сравнения.

Ниже приведено полное описание языка MCL.

2. Алфавит.

Алфавит содержит:

-буквы: 26 латинских букв и $,

-цифры от 0 до 9,

-знаки арифметических операций: +, -, *, / ( целая часть от деления ), % (остаток от деления),

-знаки операций отношения: >, >=, <, <=, =, <>.

Замечания: все операции отношения реализованы как целочисленные операции (истинность-1, иначе-0) и могут быть использованы в любом месте любого выражения. При сравнении операнды рассматриваются как целые числа без знака.

3. Использование разделителей.

Пробелы, символы табуляции, перевода на новую строку используются как разделители. Любое количество этих символов может быть помещено в любое место, где допускается пробел.

4. Использование комментариев.

Комментарий - любой текст, помещенный между символами '{' и '}'. Разрешены везде, где допускаются пробелы.

5. Идентификаторы.

Идентификаторы - это последовательность букв и цифр, начинающихся с буквы. Их длина не должна превышать 16 символов. Они используются как имена переменных, полей структур и меток.

Пример. Правильные идентификаторы:

A, R0, REG_RESULT, KOD22.

Неправильные идентификаторы:

0A - должен начинаться с буквы;

A-REG - используется недопустимый символ '-'.

6. Константы.

Все константы в языке MCL интерпретируются как 32-х разрядные целые числа без знака, отрицательные константы не поддерживаются. Для получения отрицательных значений необходимо использовать явное преобразование (операцию COM). Таким образом, могут быть использованы константы из диапазона: 0..4294967295. Константы могут быть записаны в двоичной, десятичной или шестнадцатеричной системах счисления. Правило записи констант следующее:

<константа>:='0b' <b_посл>

| ['0d'] <d_посл>

| '0h' <h_посл>

Отсюда видно, что для записи константы в любой системе счисления необходимо перед числом указать спецификатор системы счисления вида '0b' или '0d' или '0h'. Без указания спецификатора формата константа интерпретируется как десятичная.

Примеры:

12345 или 0d12345 - десятичная константа 12345,

0b1000 - двоичная константа 8,

0hFF - шестнадцатеричная константа 255.

Замечание:

для определения констант, больших по своему значению чем 2147483647 (0h7FFFFFFF), необходимо использовать двоичную или шестнадцатеричную систему счисления. Это связано с особенностями внутреннего представления целых чисел системами PASCAL VS и Turbo PASCAL.

7. Операции и выражения. Побитовые операции:

NOT (дополнение до единицы) NOT op

Дополнение до единицы (инвертирование) значения op. Значение выражения содержит 0 во всех разрядах, в которых op содержит 1, и 1 во всех разрядах, в которых op содержит 0.

COM (дополнение до двух) COM op

Дополняет до двух (переводит в дополнительный код) значение op. Фактически вычисляется выражение 1+NOT op.

AND (побитовое "И") op1 AND op2

Побитовая операция "И" двоичных представлений op1 и op2. Значение выражения содержит 1 во всех разрядах, в которых и op1 и op2 содержат 1, и 0 во всех остальных разрядах.

OR (побитовое "ИЛИ") op1 OR op2

Побитовая операция "ИЛИ" двоичных представлений op1 и op2. Значение выражения содержит 1 во всех разрядах, в которых op1 или op2 содержат 1, и 0 во всех остальных разрядах.

XOR (побитовое исключающее "ИЛИ) op1 XOR op2

Побитовая операция исключающее "ИЛИ" двоичных представлений op1 и op2. Значение выражения содержит 1 в тех разрядах, в которых и op1 и op2 имеют разные двоичные значения, и 0 во всех остальных разрядах.