Редактирование: Язык МК (1.24)
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 9: | Строка 9: | ||
может выполняться на МК без каких-либо изменений. | может выполняться на МК без каких-либо изменений. | ||
Основа архитектуры МК - [[ | Основа архитектуры МК - [[стек]], состоящий из четырех регистров: [[X]], [[Y]], [[Z]] и [[T]]. | ||
Большинство операций выполняются над [[ | Большинство операций выполняются над [[X]] и [[Y]]. | ||
МК имеет 10000 ячеек памяти программ, разбитых на 100 страниц, и может обращаться | МК имеет 10000 ячеек памяти программ, разбитых на 100 страниц, и может обращаться | ||
Строка 16: | Строка 16: | ||
для работы с байтами, [[текст]]ом и обращения к дополнительным функциям. | для работы с байтами, [[текст]]ом и обращения к дополнительным функциям. | ||
Команды МК могут быть записаны как в | Команды МК могут быть записаны как в латинской, так и в русской транскрипции. | ||
Для ручного ввода и публикации в формате HTML более привычны | Для ручного ввода и публикации в формате HTML более привычны русские | ||
обозначения. Для компилятора, по историческим причинам, предпочтительны латинские. | |||
Значение HEX Команда Описание | Значение HEX Команда Описание | ||
[[00]]-[[09]] [[0]]-[[9]] Ввод цифр | [[00]]-[[09]] [[0]]-[[9]] Ввод цифр | ||
[[0A]] [[,]] Ввод десятичной запятой | [[0A]] [[,]] Ввод десятичной запятой | ||
[[0B]] [[+/-]] [[ | [[0B]] [[+/-]] [[/-/]] Смена знака | ||
[[0C]] [[EE]] [[ВП]] - Ввод порядка | [[0C]] [[EE]] [[ВП]] - Ввод порядка | ||
[[0D]] [[CX]] [[Cx]] - Сброс [[ | [[0D]] [[CX]] [[Cx]] - Сброс [[X]] | ||
[[0E]] [[ENT]] [[В^]] - Ввод в [[ | [[0E]] [[ENT]] [[В^]] - Ввод в [[стек]] | ||
[[0F]] [[F ANS]] [[F Bx]] - Вызов в [[ | [[0F]] [[F ANS]] [[F Bx]] - Вызов в [[X]] предыдущего результата из [[X1]] | ||
[[10]] [[+]] Сложение | [[10]] [[+]] Сложение | ||
[[11]] [[ | [[11]] [[-]] Вычитание | ||
[[12]] [[ | [[12]] [[*]] Умножение | ||
[[13]] [[ | [[13]] [[/]] Деление | ||
[[14]] | [[14]] <-> Обмен содержимого [[X]] и [[Y]] | ||
[[15]] [[F 10^X]] Десять в степени [[ | [[15]] [[F 10^X]] Десять в степени [[X]] | ||
[[16]] [[F EXP]] e(2,71828...) в степени [[ | [[16]] [[F EXP]] e(2,71828...) в степени [[X]] | ||
[[17]] [[F LG]] Десятичный логарифм | [[17]] [[F LG]] Десятичный логарифм | ||
[[18]] [[F LN]] Натуральный логарифм | [[18]] [[F LN]] Натуральный логарифм | ||
Строка 47: | Строка 48: | ||
[[22]] [[F X^2]] Возведение в квадрат | [[22]] [[F X^2]] Возведение в квадрат | ||
[[23]] [[F 1/X]] Обратная величина | [[23]] [[F 1/X]] Обратная величина | ||
[[24]] [[F X^Y]] Возведение | [[24]] [[F X^Y]] Возведение X в степень Y | ||
[[25]] [[F R]] Кольцевое передвижение информации в | [[25]] [[F R]] Кольцевое передвижение информации в стеке | ||
[[26]] [[К М→Г|K M->D]] Перевод минут в доли градуса | [[26]] [[К М→Г|K M->D]] Перевод минут в доли градуса | ||
[[27]] [[K -]] [[Аварийный останов]] | [[27]] [[K -]] [[Аварийный останов]] | ||
Строка 66: | Строка 67: | ||
[[39]] [[K XOR]] Логическое сложение по модулю 2 ** | [[39]] [[K XOR]] Логическое сложение по модулю 2 ** | ||
[[3A]] [[K NOT]] Логическая инверсия ** | [[3A]] [[K NOT]] Логическая инверсия ** | ||
[[ | [[3B]] [[K RAN]] [[К СЧ]] - Генерация случайного числа от 0 до 1 ** | ||
[[3C]]-[[3F]] Не используется | [[3C]]-[[3F]] Не используется | ||
[[40]]-[[4E]] [[M0]]-[[ME]] [[П0]]-[[ПЕ]] - Запись в память | [[40]]-[[4E]] [[M0]]-[[ME]] [[П0]]-[[ПЕ]] - Запись в память | ||
[[4F]] [[PM]] [[РП]] - Запись в память регистра | [[4F]] [[PM]] [[РП]] - Запись в память регистра 0-99 (+1) | ||
[[50]] [[R/S]] [[С/П]] - Останов и пуск вычислений | [[50]] [[R/S]] [[С/П]] - Останов и пуск вычислений | ||
[[51]] [[GOTO]] [[БП]] - Безусловный переход в пределах страницы (+1) | [[51]] [[GOTO]] [[БП]] - Безусловный переход в пределах страницы (+1) | ||
Строка 79: | Строка 80: | ||
[[57]] [[F X!=0]] Переход по условию в пределах страницы (+1) | [[57]] [[F X!=0]] Переход по условию в пределах страницы (+1) | ||
[[58]] [[F L2]] Цикл с [[R2]] в пределах страницы (+1) | [[58]] [[F L2]] Цикл с [[R2]] в пределах страницы (+1) | ||
[[59]] [[ | [[59]] [[F X>=0]] Переход по условию в пределах страницы (+1) | ||
[[5A]] [[F L3]] Цикл с [[R3]] в пределах страницы (+1) | [[5A]] [[F L3]] Цикл с [[R3]] в пределах страницы (+1) | ||
[[5B]] [[F L1]] Цикл с [[R1]] в пределах страницы (+1) | [[5B]] [[F L1]] Цикл с [[R1]] в пределах страницы (+1) | ||
[[5C]] [[ | [[5C]] [[F X<0]] Переход по условию в пределах страницы (+1) | ||
[[5D]] [[F L0]] Цикл с [[R0]] в пределах страницы (+1) | [[5D]] [[F L0]] Цикл с [[R0]] в пределах страницы (+1) | ||
[[5E]] [[F X=0]] Переход по условию в пределах страницы (+1) | [[5E]] [[F X=0]] Переход по условию в пределах страницы (+1) | ||
[[5F]] Не используется ** | [[5F]] Не используется ** | ||
[[60]]-[[6E]] [[RM 1]]- [[RM E]] [[ИП0]]-[[ИПЕ]] - Вызов содержимого регистра | [[60]]-[[6E]] [[RM 1]]- [[RM E]] [[ИП0]]-[[ИПЕ]] - Вызов содержимого регистра | ||
6F P RM Вызов содержимого регистра 0-99 (+1) * | |||
70-7E K X!=0 0 - K X!=0 E Косвенный переход по условию по содержимому R0-RE | |||
7F PK X!=0 Косвенный переход по условию по содержимому R0-R99 (+1) * | |||
[[80]]-[[8E]] [[K GOTO 0]] - [[K GOTO E]] КБПR - Косвенный безусловный переход по содержимому [[R0]]-[[RE]] | [[80]]-[[8E]] [[K GOTO 0]] - [[K GOTO E]] КБПR - Косвенный безусловный переход по содержимому [[R0]]-[[RE]] | ||
[[8F]] [[PK GOTO]] Косвенный безусловный переход по содержимому [[R0]]-R99 (+1) * | [[8F]] [[PK GOTO]] Косвенный безусловный переход по содержимому [[R0]]-R99 (+1) * | ||
[[90]]-[[9E]] | [[90]]-[[9E]] K X>=0 0 - K X>=0 E Косвенный переход по условию по содержимому [[R0]]-[[RE]] | ||
[[9F]] | [[9F]] PK X>=0 Косвенный переход по условию по содержимому [[R0]]-R99 (+1) * | ||
[[A0]]-[[AE]] [[K GSB 0]] - [[K GSB E]] КППR - Косвенный переход на подпрограмму по содержимому [[R0]]-[[RE]] | [[A0]]-[[AE]] [[K GSB 0]] - [[K GSB E]] КППR - Косвенный переход на подпрограмму по содержимому [[R0]]-[[RE]] | ||
[[AF]] [[PK GSB]] Косвенный переход на подпрограмму по содержимому [[R0]]-R99 (+1) * | [[AF]] [[PK GSB]] Косвенный переход на подпрограмму по содержимому [[R0]]-R99 (+1) * | ||
[[B0]]-[[BE]] [[K M 0]] - [[K M E]] КПR - Косвенная запись по содержимому [[R0]]-[[RE]] | [[B0]]-[[BE]] [[K M 0]] - [[K M E]] КПR - Косвенная запись по содержимому [[R0]]-[[RE]] | ||
[[BF]] [[PK M]] Косвенная запись по содержимому [[R0]]-R99 (+1) * | [[BF]] [[PK M]] Косвенная запись по содержимому [[R0]]-R99 (+1) * | ||
[[C0]]-[[CE]] | [[C0]]-[[CE]] K X<0 0 - K X<0 E Косвенный переход по условию по содержимому [[R0]]-[[RE]] | ||
[[CF]] | [[CF]] PK X<0 Косвенный переход по условию по содержимому [[R0]]-R99 (+1) * | ||
[[D0]]-[[DE]] [[K RM 0]] - [[K RM E]] КИПR - Косвенный вызов в стек по содержимому [[R0]]-[[RE]] | [[D0]]-[[DE]] [[K RM 0]] - [[K RM E]] КИПR - Косвенный вызов в стек по содержимому [[R0]]-[[RE]] | ||
[[DF]] [[PK RM]] Косвенный вызов в стек по содержимому [[R0]]-R99 (+1) * | [[DF]] [[PK RM]] Косвенный вызов в стек по содержимому [[R0]]-R99 (+1) * | ||
Строка 108: | Строка 109: | ||
[[F2]] [[PP RTN]] [[PP В/О]] - Возврат из прерывания * | [[F2]] [[PP RTN]] [[PP В/О]] - Возврат из прерывания * | ||
[[F3]] [[P GSB]] [[Р ПП]] - Переход на подпрограмму (+2) * | [[F3]] [[P GSB]] [[Р ПП]] - Переход на подпрограмму (+2) * | ||
[[F4]] [[PP M]] [[РР П]] - Запись | [[F4]] [[PP M]] [[РР П]] - Запись R0-R9999 (+2) * | ||
[[F5]] Не используется | [[F5]] Не используется | ||
[[F6]] [[PP RM]] [[РР ИП]] - Вызов | [[F6]] [[PP RM]] [[РР ИП]] - Вызов R0-R9999 (+2) * | ||
[[F7]] [[P X!=0]] Переход по условию (+2) * | [[F7]] [[P X!=0]] Переход по условию (+2) * | ||
[[F8]] [[PF L2]] Цикл по [[R2]] (+2) * | [[F8]] [[PF L2]] Цикл по [[R2]] (+2) * | ||
Строка 119: | Строка 120: | ||
[[FD]] [[PF L0]] Цикл по [[R0]] (+2) * | [[FD]] [[PF L0]] Цикл по [[R0]] (+2) * | ||
[[FE]] [[P X=0]] Переход по условию (+2) * | [[FE]] [[P X=0]] Переход по условию (+2) * | ||
[[ | [[FF]] Не используется | ||
* Команда отсутствовала в советских ПМК [[МК-61]], [[МК-52]] | * Команда отсутствовала в советских ПМК [[МК-61]], [[МК-52]] | ||
Строка 129: | Строка 130: | ||
и без пробелов. Допускается запись нескольких операторов в строке. | и без пробелов. Допускается запись нескольких операторов в строке. | ||
При этом следует учитывать возможные неоднозначности. | При этом следует учитывать возможные неоднозначности. | ||