Редактирование:
Язык МК
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
''Данный текст взят из справки [[MK.EXE]]'' Полное описание языка МК следует смотреть в эксплуатационной документации или в литературе. Здесь только краткая справка об архитектуре и системе команд. Язык МК основан на языке программирования советских микрокалькуляторов [[МК-61]] и [[МК-52]], поэтому для ознакомления можно использовать литературу по этим калькуляторам. Значительная часть программ советских калькуляторов может выполняться на МК без каких-либо изменений. Основа архитектуры МК - [[Стек калькулятора|стек]], состоящий из четырех регистров: [[RX|X]], [[RY|Y]], [[RZ|Z]] и [[RT|T]]. Большинство операций выполняются над [[RX|X]] и [[RY|Y]]. МК имеет 10000 [[ячейка|ячеек]] [[память программ|памяти программ]], разбитых на 100 [[страница|страниц]], и может обращаться к 10000 [[Регистр памяти данных|регистрам]]. Из них первые 1000 хранят [[Десятичное число|десятичные числа]], остальные служат для работы с байтами, [[текст]]ом и обращения к дополнительным функциям. Команды МК могут быть записаны как в [[Латинская мнемоника|латинской]], так и в [[Русская мнемоника|русской]] транскрипции. Для ручного ввода и публикации в формате HTML более привычны [[Русская мнемоника|русские обозначения]]. Для компилятора, по историческим причинам, предпочтительны [[Латинская мнемоника|латинские]]. Значение HEX Команда Описание [[00]]-[[09]] [[0]]-[[9]] Ввод цифр [[0A]] [[,]] Ввод десятичной запятой [[0B]] [[+/-]] [[Команда /−/|/-/]] Смена знака [[0C]] [[EE]] [[ВП]] - Ввод порядка [[0D]] [[CX]] [[Cx]] - Сброс [[RX|X]] [[0E]] [[ENT]] [[В^]] - Ввод в [[Стек калькулятора|стек]] [[0F]] [[F ANS]] [[F Bx]] - Вызов в [[RX|X]] предыдущего результата из [[X1]] [[10]] [[+]] Сложение [[11]] [[−]] Вычитание [[12]] [[×]] Умножение [[13]] [[÷]] Деление [[14]] [[↔|<->]] Обмен содержимого [[RX|X]] и [[RY|Y]] [[15]] [[F 10^X]] Десять в степени [[RX|X]] [[16]] [[F EXP]] e(2,71828...) в степени [[RX|X]] [[17]] [[F LG]] Десятичный логарифм [[18]] [[F LN]] Натуральный логарифм [[19]] [[F ARCSIN]] Арксинус [[1A]] [[F ARCCOS]] Арккосинус [[1B]] [[F ARCTG]] Арктангенс [[1C]] [[F SIN]] Синус [[1D]] [[F COS]] Косинус [[1E]] [[F TG]] Тангенс [[1F]] Не используется [[20]] [[F PI]] Занесение в стек числа Пи (3,14159...) [[21]] [[F SQRT]] Квадратный корень [[22]] [[F X^2]] Возведение в квадрат [[23]] [[F 1/X]] Обратная величина [[24]] [[F X^Y]] Возведение [[RX|X]] в степень [[RY|Y]] [[25]] [[F R]] Кольцевое передвижение информации в [[Стек калькулятора|стеке]] [[26]] [[К М→Г|K M->D]] Перевод минут в доли градуса [[27]] [[K -]] [[Аварийный останов]] [[28]] [[K PRGM]] [[К ИПРГ]] - Считывание байта из памяти программ * [[29]] [[K /]] [[Аварийный останов]] [[2A]] [[К МС→Г|K MS->D]] Перевод минут и секунд в доли градуса [[2B]]-[[2F]] Не используется [[30]] [[К Г→МС|K D->MS]] Перевод долей градуса в минуты и секунды [[31]] [[K ABS]] K |x| - Абсолютное значение [[32]] [[K SGN]] [[К ЗН]] - Определение знака числа [[33]] [[К Г→М|K D->M]] Перевод долей градуса в минуты [[34]] [[K INT]] K [x] - Выделение целой части [[35]] [[K FRAC]] K {x} - Выделение дробной части [[36]] [[K MAX]] Определение максимального значения ** [[37]] [[K AND]] Логическое умножение ** [[38]] [[K OR]] Логическое сложение ** [[39]] [[K XOR]] Логическое сложение по модулю 2 ** [[3A]] [[K NOT]] Логическая инверсия ** [[3B (код)|3B]] [[K RAN]] [[К СЧ]] - Генерация случайного числа от 0 до 1 ** [[3C]]-[[3F]] Не используется [[40]]-[[4E]] [[M0]]-[[ME]] [[П0]]-[[ПЕ]] - Запись в память [[4F]] [[PM]] [[РП]] - Запись в память регистра [[R0|0]]-99 (+1) [[50]] [[R/S]] [[С/П]] - Останов и пуск вычислений [[51]] [[GOTO]] [[БП]] - Безусловный переход в пределах страницы (+1) [[52]] [[RTN]] [[В/О]] - Возврат из подпрограммы [[53]] [[GSB]] [[ПП]] - Переход на подпрограмму в пределах страницы(+1) [[54]] [[K NOP]] [[К НОП]] - Нет операции [[55]] [[K SCR]] [[К ЭКР]] - Обновление экрана * [[56]] [[K GRPH]] [[К ГРФ]] - Вывод графической информации * [[57]] [[F X!=0]] Переход по условию в пределах страницы (+1) [[58]] [[F L2]] Цикл с [[R2]] в пределах страницы (+1) [[59]] [[F x≥0|F X>=0]] Переход по условию в пределах страницы (+1) [[5A]] [[F L3]] Цикл с [[R3]] в пределах страницы (+1) [[5B]] [[F L1]] Цикл с [[R1]] в пределах страницы (+1) [[5C]] [[5C|F X<0]] Переход по условию в пределах страницы (+1) [[5D]] [[F L0]] Цикл с [[R0]] в пределах страницы (+1) [[5E]] [[F X=0]] Переход по условию в пределах страницы (+1) [[5F]] Не используется ** [[60]]-[[6E]] [[RM 1]]- [[RM E]] [[ИП0]]-[[ИПЕ]] - Вызов содержимого регистра [[6F]] [[P RM]] Вызов содержимого регистра [[R0|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]] [[8F]] [[PK GOTO]] Косвенный безусловный переход по содержимому [[R0]]-R99 (+1) * [[90]]-[[9E]] [[K X≥0 0|K X>=0 0]] - [[K X≥0 E|K X>=0 E]] Косвенный переход по условию по содержимому [[R0]]-[[RE]] [[9F]] [[PK x≥0|PK X>=0]] Косвенный переход по условию по содержимому [[R0]]-R99 (+1) * [[A0]]-[[AE]] [[K GSB 0]] - [[K GSB E]] КППR - Косвенный переход на подпрограмму по содержимому [[R0]]-[[RE]] [[AF]] [[PK GSB]] Косвенный переход на подпрограмму по содержимому [[R0]]-R99 (+1) * [[B0]]-[[BE]] [[K M 0]] - [[K M E]] КПR - Косвенная запись по содержимому [[R0]]-[[RE]] [[BF]] [[PK M]] Косвенная запись по содержимому [[R0]]-R99 (+1) * [[C0]]-[[CE]] [[C0|K X<0 0]] - [[CE|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]] [[DF]] [[PK RM]] Косвенный вызов в стек по содержимому [[R0]]-R99 (+1) * [[E0]]-[[EE]] [[K X=0 0]] - [[K X=0 E]] Косвенный переход по условию по содержимому [[R0]]-[[RE]] [[EF]] [[PK X=0]] Косвенный переход по условию по содержимому [[R0]]-R99 (+1) * [[F0]] Не используется [[F1]] [[P GOTO]] [[Р БП]] - Безусловный переход (+2) * [[F2]] [[PP RTN]] [[PP В/О]] - Возврат из прерывания * [[F3]] [[P GSB]] [[Р ПП]] - Переход на подпрограмму (+2) * [[F4]] [[PP M]] [[РР П]] - Запись [[R0]]-R9999 (+2) * [[F5]] Не используется [[F6]] [[PP RM]] [[РР ИП]] - Вызов [[R0]]-R9999 (+2) * [[F7]] [[P X!=0]] Переход по условию (+2) * [[F8]] [[PF L2]] Цикл по [[R2]] (+2) * [[F9]] [[P x≥0|P X>=0]] Переход по условию (+2) * [[FA]] [[PF L3]] Цикл по [[R3]] (+2) * [[FB]] [[PF L1]] Цикл по [[R1]] (+2) * [[FC]] [[FC|P X<0]] Переход по условию (+2) * [[FD]] [[PF L0]] Цикл по [[R0]] (+2) * [[FE]] [[P X=0]] Переход по условию (+2) * [[FF (код)|FF]] Не используется * Команда отсутствовала в советских ПМК [[МК-61]], [[МК-52]] ** Действие команды не совпадает с [[МК-61]], [[МК-52]] +1 После кода команды следует один байт +2 После кода команды следует два байта В файле исходного текста операторы могут записываться строчными буквами и без пробелов. Допускается запись нескольких операторов в строке. При этом следует учитывать возможные неоднозначности. == Ссылки == * См. также статью [[РЯМК|расширенный язык МК]] [[Категория:MK.EXE]] [[Категория:Язык ЭКВМ]] [[Категория:Языки программирования для ЭКВМ]]
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице