12

Elektronika B3-34

Как работает

Электроника Б3-34

Часть 2

English version

Это - продолжение рассказа о том, как работать с программируемым микрокалькулятором Б3-34. Начало рассказа здесь.

В процессе вычислений может возникнуть сообщение об ошибке при переполнении или выполнении некорректной операции:

В микрокалькуляторе используется 14 регистров памяти. Они имеют номера 0-9, A-D (в MK-61 и MK-52 есть дополнительный регистр E).

Чтение из регистра производится в регистр X. Запись в регистры производится также из регистра X. Для записи числа из регистра X в регистр памяти используется клавиша (П - память). Для извлечения числа из регистра памяти используется клавиша (ИП - из памяти). Например, чтобы записать число 3 в регистр 8, надо нажать клавиши . Аналогично число извлекается из памяти.

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

Вызов из памяти, набор на клавиатуре после выполнения операции (кроме и , завершающих набор)

Продолжение набора на клавиатуре после или .

Нажатие клавиши .

Выполнение одноместной операции и .

Выполнение двуместной операции.

Извлечение содержимого регистра X1.

Циклический сдвиг стека.

.

Обмен содержимым X и Y.

Дальше рассмотрим команды перехода.

Для безусловного перехода на адрес программы используется клавиша (БП - безусловный переход). После команды следует указать адрес перехода. Например, для того, чтобы перейти на адрес 60, надо нажать клавиши: . Эта команда работает как в режиме ручных вычислений, так и в программном режиме. В программном режиме такая команда занимает две ячейки памяти: первая ячейка - код команды перехода, вторая - адрес перехода.

Чтобы вызвать подпрограмму, используется команда (ПП - переход на подпрограмму). Так же, как и в команде безусловного перехода, необходимо указать адрес, с которого начинается подпрограмма. Команда возврата из подпрограммы - . Подпрограммы могут вкладываться друг в друга. Всего допускается до пяти уровней вложенности подпрограмм.

Также есть специальные команды, которые изменяют порядок выполнения программы в зависимости от содержимого регистра X. Это команды b-p.jpg (917 bytes) b-p.jpg (917 bytes) b-p.jpg (917 bytes) b-p.jpg (917 bytes). Если условие выполняется, то управление передается на команду, следующую за командой условия, в противном случае - управление передастся на указанный адрес.

Например, если с адреса 20 мы введем строку: 20. b-p.jpg (917 bytes) 21. , то если содержимое регистра X будет меньше нуля, то программа продолжится с адреса 22, а если ноль и больше, то с адреса 25.

Для организации циклов предусмотрены специальные команды . После ввода этих команд также необходимо указать адрес перехода. Каждая команда ассоциирована с регистрами от 0 до 3 соответственно. После выполнения команды происходит вычитание единицы из этого регистра и сравнение результата с нулем. Если результат равен нулю, то программа продолжит свое выполнение со следующего адреса. Иначе - перейдет на указанный адрес перехода.

Напишем небольшую программу вычисления факториала.

Сначала перейдем в режим программирования: (переход на адрес 00) . Затем вводим программу:

00. 01. 02. 03. 04. 05. 06.

Когда программа написана, переходим в режим автоматической работы: .

Число вводится с клавиатуры и нажимаются клавиши (возврат на адрес 00) и (старт). Число должно быть в диапазоне от 1 до 69.

Теперь рассмотрим индексные команды.

Индексные команды начинаются с нажатия клавиши и всегда занимают одну ячейку памяти. После нажатия клавиши вводится одна из команд b-p.jpg (917 bytes) b-p.jpg (917 bytes) b-p.jpg (917 bytes) b-p.jpg (917 bytes) и номер регистра.

Перед выполнением действия значение регистра модифицируется. Если номер регистра 0, 1, 2, 3, то перед выполнением действия его значение уменьшается на единицу. Если номер регистра равен 4, 5, 6, то значение регистра увеличивается на единицу. Остальные регистры не изменяются.

Регистру A соответствует число 10, B - 11, C - 12, D - 13 (в MK-61 и MK-52, E - 14).

Команда поместит значение регистра X в регистр, номер которого указан в регистре 0, но меньший на 1.

Команда поместит в регистр X значение регистра, указанного в регистре 4, но больший на 1.

Команда переведет работу программы на адрес, указанный в регистре 9. Аналогично переход на подпрограмму, адрес которой указан в регистре B, выполняется командой .

Команда аналогична команде XX, но адрес перехода указывается в регистре A, и команда занимает одну ячейку памяти.

Здесь следует обратить внимание, что если в регистр поместить дробное число, а затем к этому регистру применить команду косвенного вызова, то от помещенного числа отбросится дробная часть.

Например, поместив число 12.34567 в регистр 9 и отдав команду , в регистре 9 останется число 00000012. Эта интересная особенность очень удобна для отделения целой части числа.

Более подробно про другие недокументированные и интересные функции микрокалькулятора Б3-34 смотрите на специальной страничке.

© Sergei Frolov, 1998-2000
Last modified: 25.03.00.
Hosted by www.Geocities.ws

. 1