Редактирование: Язык МК
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
''Данный текст взят из справки [[MK.EXE]]'' | ''Данный текст взят из справки [[MK.EXE]]'' | ||
Полное описание языка МК следует смотреть в эксплуатационной документации или в литературе. Здесь только краткая справка об архитектуре и системе команд. | Полное описание языка МК следует смотреть в эксплуатационной документации | ||
или в литературе. Здесь только краткая справка об архитектуре и системе команд. | |||
Язык МК основан на языке программирования советских микрокалькуляторов [[МК-61]] и [[МК-52]], поэтому для ознакомления можно использовать литературу по этим калькуляторам. Значительная часть программ советских калькуляторов может выполняться на МК без каких-либо изменений. | Язык МК основан на языке программирования советских микрокалькуляторов | ||
[[МК-61]] и [[МК-52]], поэтому для ознакомления можно использовать литературу по этим | |||
калькуляторам. Значительная часть программ советских калькуляторов | |||
может выполняться на МК без каких-либо изменений. | |||
Основа архитектуры МК - [[ | Основа архитектуры МК - [[стек]], состоящий из четырех регистров: [[RX|X]], [[RY|Y]], [[RZ|Z]] и [[RT|T]]. | ||
Большинство операций выполняются над [[RX|X]] и [[RY|Y]]. | Большинство операций выполняются над [[RX|X]] и [[RY|Y]]. | ||
МК имеет 10000 [[ячейка|ячеек]] [[память программ|памяти программ]], разбитых на 100 [[страница|страниц]], и может обращаться к 10000 | МК имеет 10000 [[ячейка|ячеек]] [[память программ|памяти программ]], разбитых на 100 [[страница|страниц]], и может обращаться | ||
к 10000 регистрам. Из них первые 1000 хранят десятичные числа, остальные служат | |||
для работы с байтами, [[текст]]ом и обращения к дополнительным функциям. | |||
Команды МК могут быть записаны как в [[Латинская мнемоника|латинской]], так и в [[Русская мнемоника|русской]] транскрипции. | Команды МК могут быть записаны как в [[Латинская мнемоника|латинской]], так и в [[Русская мнемоника|русской]] транскрипции. | ||
Строка 16: | Строка 22: | ||
[[00]]-[[09]] [[0]]-[[9]] Ввод цифр | [[00]]-[[09]] [[0]]-[[9]] Ввод цифр | ||
[[0A]] [[,]] Ввод десятичной запятой | [[0A]] [[,]] Ввод десятичной запятой | ||
[[0B]] [[+/-]] [[ | [[0B]] [[+/-]] [[/-/]] Смена знака | ||
[[0C]] [[EE]] [[ВП]] - Ввод порядка | [[0C]] [[EE]] [[ВП]] - Ввод порядка | ||
[[0D]] [[CX]] [[Cx]] - Сброс [[RX|X]] | [[0D]] [[CX]] [[Cx]] - Сброс [[RX|X]] | ||
[[0E]] [[ENT]] [[В^]] - Ввод в [[ | [[0E]] [[ENT]] [[В^]] - Ввод в [[стек]] | ||
[[0F]] [[F ANS]] [[F Bx]] - Вызов в [[RX|X]] предыдущего результата из [[X1]] | [[0F]] [[F ANS]] [[F Bx]] - Вызов в [[RX|X]] предыдущего результата из [[X1]] | ||
[[10]] [[+]] Сложение | [[10]] [[+]] Сложение | ||
[[11]] [[ | [[11]] [[-]] Вычитание | ||
[[12]] [[ | [[12]] [[*]] Умножение | ||
[[13]] [[ | [[13]] [[/]] Деление | ||
[[14]] [[↔|<->]] Обмен содержимого [[RX|X]] и [[RY|Y]] | [[14]] [[↔|<->]] Обмен содержимого [[RX|X]] и [[RY|Y]] | ||
[[15]] [[F 10^X]] Десять в степени [[RX|X]] | [[15]] [[F 10^X]] Десять в степени [[RX|X]] | ||
Строка 42: | Строка 48: | ||
[[23]] [[F 1/X]] Обратная величина | [[23]] [[F 1/X]] Обратная величина | ||
[[24]] [[F X^Y]] Возведение [[RX|X]] в степень [[RY|Y]] | [[24]] [[F X^Y]] Возведение [[RX|X]] в степень [[RY|Y]] | ||
[[25]] [[F R]] Кольцевое передвижение информации в | [[25]] [[F R]] Кольцевое передвижение информации в стеке | ||
[[26]] [[К М→Г|K M->D]] Перевод минут в доли градуса | [[26]] [[К М→Г|K M->D]] Перевод минут в доли градуса | ||
[[27]] [[K -]] [[Аварийный останов]] | [[27]] [[K -]] [[Аварийный останов]] | ||
Строка 60: | Строка 66: | ||
[[39]] [[K XOR]] Логическое сложение по модулю 2 ** | [[39]] [[K XOR]] Логическое сложение по модулю 2 ** | ||
[[3A]] [[K NOT]] Логическая инверсия ** | [[3A]] [[K NOT]] Логическая инверсия ** | ||
[[3B (код) | [[3B (код)]] [[K RAN]] [[К СЧ]] - Генерация случайного числа от 0 до 1 ** | ||
[[3C]]-[[3F]] Не используется | [[3C]]-[[3F]] Не используется | ||
[[40]]-[[4E]] [[M0]]-[[ME]] [[П0]]-[[ПЕ]] - Запись в память | [[40]]-[[4E]] [[M0]]-[[ME]] [[П0]]-[[ПЕ]] - Запись в память | ||
Строка 123: | Строка 129: | ||
и без пробелов. Допускается запись нескольких операторов в строке. | и без пробелов. Допускается запись нескольких операторов в строке. | ||
При этом следует учитывать возможные неоднозначности. | При этом следует учитывать возможные неоднозначности. | ||