Внимание! Данный документ находится в процессе разработки и может содержать ошибки. | Данный документ - есть синтез оригинального "Руководства по эксплуатации" с дополнениями автора программы "Калькулятор Б3-34". |
Калькулятор Б3-34.
Содержание пакета:
Краткое руководство
(этот файл) Таблица
команд Описание программы
Краткое руководство.
Нужен ли Вам такой калькулятор? Калькулятор Б3-34 является программируемым микроклькулятором (ПМК) и предназначен для выполнения научных, инженерных и статистических расчётов. В отличие от простых калькуляторов, в Б3-34 отсутствует клавиша = (равно). В Б3-34 сначала вводятся операнды, затем решается что с ними делать. Например, чтобы вычислить сумму 2+2 надо нажать на клавишу 2, затем на синюю клавишу "стрелка вверх", затем на клавишу 2 и на синюю клавишу +, на индикаторе высветится результат (4). Если Вам надо сохранить несколько длинных чисел для повторного их использования, достаточно после ввода числа нажать две клавиши - П и любую, от 0 до F, и продолжить работу. Повторим предыдущий пример, только при этом сохраним операнды в памяти. Нажимаем клавишу 2, клавишу П, клавишу 1, клавишу 2, клавишу П, клавишу 2, клавишу +, на индикаторе высветится результат (4). Теперь проверим, чему будет равно произведение введёных ранее чисел. Нажимаем клавишу ИП, клавишу 1, клавишу ИП, клавишу 2, синюю клавишу X (умножить). Этим все удобства "машинны" не исчерпываются. Они проявляются в полной мере тогда, когда требуются многочисленные вычисления для составление таблиц и графиков. |
Калькулятор имеет:
|
Ввод чисел. Ввод чисел, операций и команд в микрокалькулятор осуществляется нажатием соответствующих клавиш левой кнопкой мыши. Имеется пока не полностью реализованная возможность ввода посредством клавиатуры. (Надо отметить, что сложность реализации ввода с клавиатуры обусловлена отсутствием подходящих по смыслу названий на клавишах стандартной клавиатуры. Автор был бы благодарен за ценный совет по этой проблеме.) Многие клавиши имеют двойную и тройную символику. Один символ изображён непосредственно на клавише, второй - над клавишей красным цветом, третий - снизу или справа от клавиши чёрным цветом. Ввод функции, символ которой изображён красным цветом над клавишей, осуществляется нажатием на префиксную клавишу F или К, затем на клавишу над которой изображён символ вводимой функции. Назначение клавиш приведено в таблице команд (размер файла >81 кбайт). |
Два режима работы калькулятора. "Автоматическая работа" - основной режим работы. |
Регистры стека. В микроклькуляторе имеются 5 операционных регистров X1, X, Y, Z, T. Регистр X служит для приёма и хранения вводимого числа и результата вычислений. Его содержимое отображается на индикаторе. Регистр Y служит для приёма информации из регистра X, что обеспечивает при необходимости, ввод в регистр X второго числа. Занесение числа в регистр Y происходит при нажатии на кнопку "стрелка вверх". |
||||||||||||||
|
||||||||||||||
Регистры общего назначения. Это 16 адресуемых регистров памяти для хранения данных или адресов переходов в программе. Номер регистра обозначается шеснадцатиричным числом - от 0 до F. В оригинале "руководства по эксплуатации" в название этих регистров введён префикс RG (RG0, RG1 ... и т.д.). Из таблицы команд видно, что код команд обращения к регистрам однозначно определяется вторым полубайтом кода команды, например, таких как 40 -4F (запись в регистр памяти - клавиши П, 0 до П.F), 60 -6F (извлечение из регистров памяти в регистр X - клавиши П, 0 до П.F) и других командах. |
||||||||||||||
Одноместные операции - это операции для выполнения которых требуется один операнд. Операнд, над которам производится операция находится в регистре X и высвечивается на индикаторе. Результат операции записывается в регистр X, при этом содержимое остальных регистров не изменяется. Следующие операции в Б3-34 являются одноместными:
|
Двухместные операции - это операции для выполнения которых требуется два операнда, расположеных в регистрах X и Y. К таким операциям относятся четыре арифметических действия (сложение, вычитание, умножение и деление) и вычисление степенной функции x^y (x в степени y). Результат операции записывается в регистр X. При этом информация в регистре Y, хранящаяся до выполнения операции заменяется содержимым регистра Z. Схема передвижения в стеке T=T->Z->Y, X1=содержимому регистра X до выполнения операции. |
Если на индикаторе высвечивается результат предыдущих вычислений, то набор на клавиатуре нового числа автоматически передвигает информацию из регистра X в регистр Y. Перемещение в стеке происходит по схеме X->Y->Z->T, предыдущее содержимое T теряется. Таким образом, результат вычисления предыдущей операции может участвовать в качестве второго операнда при выполнении последующих вычислений. |
Команды перехода по условию ( x<0 либо x=0, x>=0, x!=0 (не равно нулю)) реализуются клавишей F, клавишей условия " x<0", "x=0", "x>=0", "x!=0" и вводом адреса перехода. Проверяется сожержимое регистра X на выполнение заданного условия. Если условие не выполняется, то следующей по программе будет выполнена команда, адрес которой указан непосредственно в команде условного перехода. Если условие выполняется, то следующей командой будет следующая за адресом прехода команда. Длина команды - два байта (шага) програмной памяти. |
Команда вызова продпрограммы реализуется клавишей ПП и сдующему за ней адресом (начала подпрограммы). При этом в стек возврата записывается следующий адрес программы, на который в дальнейшем будет сделан взврат из подпрограммы (В/О). Длина команды - два шага. В режиме "Автоматическая работа", когда программа не выполняется, нажатие на клавишу ПП производит пошаговое выполнение программы. |
Команды косвенного вызова продпрограммы. Команда косвенного вызова продпрограммы реализуется клавишами К , ПП и клавишей адресуемого регистра ( 0 ... F ). Длина команды - один шаг. С помощью этой команда происходит модификация адреса, хранящегося в адресуемом регистре, индекс которого входит в команду. Затем, записывается в стек возврата следующий адрес программы, на который в дальнейшем будет сделан взврат из подпрограммы (командой В/О), и осуществляется вызов подпрограммы, записанной по модифицированному адресу. |
Команда возврата из продпрограммы. Команда возврата из продпрограммы реализуется клавишей В/О. Из стека возврата читается последний адрес, который записывается туда во время вызова подпрограммы посредством команды ПП ... (или К ПП ...), и происходит переход на этот адрес. |
Таблица модификации при косвенной адресации.
Регистр
|
Модификация
|
Надпись
|
0
|
-1
|
Клавиша с надписью 0
|
1
|
-1
|
Клавиша с надписью 1
|
2
|
-1
|
Клавиша с надписью 2
|
3
|
-1
|
Клавиша с надписью 3
|
4
|
+1
|
Клавиша с надписью 4
|
5
|
+1
|
Клавиша с надписью 5
|
6
|
+1
|
Клавиша с надписью 6
|
7
|
нет
|
Клавиша с надписью 7
|
8
|
нет
|
Клавиша с надписью 8
|
9
|
нет
|
Клавиша с надписью 9
|
A
|
нет
|
Клавиша с надписью , (запятая), под клавишей чёрным
цветом - латинская буква A.
|
B
|
нет
|
Клавиша с надписью /-/, под клавишей чёрным цветом -
латинская буква B.
|
C
|
нет
|
Клавиша с надписью ВП, под клавишей чёрным цветом -
латинская буква C.
|
D
|
нет
|
Клавиша с надписью Cx, под клавишей чёрным цветом -
латинская буква D.
|
E
|
нет
|
Клавиша с надписью в виде стрелки вверх, справа от клавиши
чёрным цветом - латинская буква E.
|
F
|
нет
|
Клавиша с надписью - (знак минус), справа от клавиши
чёрным цветом - латинская буква F.
|
Команды косвенных переходов по условию реализуется клавишей "К", клавишей условия ( x<0 либо x=0, x>=0, x!=0 (не равно нулю)) и клавишей адресуемого регистра (от "0" до "F"). С помощью этой команды проверяется содержимое регистра X на выполнение заданного условия. Если условие не выполняется (обратите внимание, именно - когда не выпоняется), то происходит модификация (изменение) адреса, хранящегося в адресуемом регистре, индекс которого входит в команду, и осуществляется переход к выполнению команды, записанной по модифицированному адресу. Если условие выполняется, то происходит переход к выполнению следующей команды. При этом адрес, записанный в адресуемом регистре, не модифицируется. |
Команды косвенного чтения регистра памяти. Команда модифицирует регистр , номер которого входит в команду (согласно таблице модификации), после чего происходит чтение соответствующего регистра в регистр X. Пример. Если содержимое регистра 0 до выполнения команды было равно 3, то при выполнении команды К ИП 0 уменьшается содержимое регистра 0 (теперь оно равно 2) и происходит чтение содержимого регистра 2 в регистр X. |
Команды косвенной записи в регистр памяти. Команда модифицирует регистр , номер которого входит в команду (согласно таблице модификации), после чего происходит запись в соответствующий регистр содержимое регистра X. Пример. Если содержимое регистра 0 до выполнения команды было равно 3, то при выполнении команды К П 0 уменьшается содержимое регистра 0 (теперь оно равно 2) и происходит запись содержимого регистра X в регистр 2. |
Команды организации циклов организуются клавишами L0, L1, L2, L3 в сочетании с префиксной клавишей F. Команда состоит из кода команды и следующего за ней адреса перехода. При выполнении команды L0 происходит обращение к регистру памяти RG0. При каждом выполнении этой команды из содержимого регистра 0 вычитается 1 и производится анализ его на нуль. Если оно не равно нулю, происходит переход к выполнению команды перехода, входящего в команду. Если содержимое регистра памяти RG0 равно нулю, то цикл завершается и выполняется следующая команда. Длина команды - два шага. |
Программирование. Вход в режим программирования осущесвляется посредством нажатия на клавиши
F и ПРГ. Калькулятор перейдёт на текущий адрес программы. Если требуется
перейти на заданый адрес, то перед входом в режим программирования надо
перейти на этот адрес нажатием клавиши БП и вводом адреса. Перемещение
по программе происходит автоматически при вводе команд или принудительно
- клавишами ШГ. Справа на индикаторе высвечивается адрес следующего шага
программы. В других полях индикатора высвечиваются (3 поля) коды введённых
команд в порядке возрастания, слева направо. |
Вычисление по программе. Вычисления по программе начинаются нажатием на клавишу С/П. Начинается выполнение программы с текущего адреса. Если требуется начать (или продолжить) программу с конкретного адреса, то необходимо перейти на этот адрес нажатием клавиши БП и вводом адреса. Останов вычислений осуществляется повторным нажатием клавиши С/П. |
Отличия от оригиналального Б3-34. При косвенном обращении команд к регистрам, когда должен быть считан номер регистра, от содержимого стчитываемого регистра выделяется целая часть (дробная не учитывается, но и не меняется), из которой выделятся младшее значимое, не превышающее количества регистров памяти минус 1 (это 4 младших бита). В случае считывания адреса перехода используется целая часть содержимого регистра. Если адрес перехода окажется за пределами программы, - программа выдаст соответствующее предупреждение. |
5 May, 2002 3:02