kolibrios-fun/programs/emulator/PrMK/trunk/docs/b3-34help0.htm
Yogev Ezra 63cf01e274 Added sources: emulator/PrMK , games/klavisha
git-svn-id: svn://kolibrios.org@1863 a494cfbc-eb01-0410-851d-a64ba20cac60
2011-02-15 11:55:49 +00:00

740 lines
31 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<HTML>
<HEAD>
<TITLE>Б3-34 - краткое руководство</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META name="keywords" content="Калькулятор Б3-34 - краткое руководство.">
</HEAD>
<BODY bgcolor="#FFFFFF">
<TABLE width="96%" border="0" align="center">
<TR>
<TD height="102" width="33%"><FONT color="#FF0000">Внимание!</FONT> Данный
документ находится в процессе разработки и может содержать ошибки.</TD>
<TD height="102" width="28%">&nbsp;</TD>
<TD height="102" width="39%"><FONT size="-1"><I>Данный документ - есть синтез
оригинального &quot;Руководства по эксплуатации&quot; с дополнениями автора
программы &quot;Калькулятор Б3-34&quot;. </I></FONT></TD>
</TR>
</TABLE>
<P align="center">&nbsp;</P>
<P align="center"><B><FONT size="+2" color="#CC0000">Калькулятор Б3-34.</FONT></B></P>
<P align="center"><B><FONT color="#000000">Содержание пакета:<BR>
<A href="b3-34help0.htm">Краткое руководство</A></FONT></B><FONT color="#000000"><B>
</B><FONT color="#666666">(этот файл) </FONT><B> <A href="b3-34help1.htm">Таблица
команд</A> <A href="b3-34help2.htm"> Описание программы</A></B></FONT></P>
<P align="center"><B><FONT size="+2" color="#CC0000"><BR>
</FONT><FONT size="+2">Краткое руководство.</FONT></B></P>
<P align="center"><B><BR>
</B></P>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B>Нужен ли Вам такой калькулятор?</B></P>
<P>Калькулятор <B>Б3-34</B> является программируемым микроклькулятором (ПМК)
и предназначен для выполнения научных, инженерных и статистических расчётов.
В отличие от простых калькуляторов, в <B>Б3-34</B> отсутствует клавиша
= (равно). В Б3-34 сначала вводятся операнды, затем решается что с ними
делать. Например, чтобы вычислить сумму 2+2 надо нажать на клавишу 2,
затем на синюю клавишу &quot;стрелка вверх&quot;, затем на клавишу 2 и
на синюю клавишу +, на индикаторе высветится результат (4). Если Вам надо
сохранить несколько длинных чисел для повторного их использования, достаточно
после ввода числа нажать две клавиши - П и любую, от 0 до F, и продолжить
работу. Повторим предыдущий пример, только при этом сохраним операнды
в памяти. Нажимаем клавишу 2, клавишу П, клавишу 1, клавишу 2, клавишу
П, клавишу 2, клавишу +, на индикаторе высветится результат (4). Теперь
проверим, чему будет равно произведение введёных ранее чисел. Нажимаем
клавишу ИП, клавишу 1, клавишу ИП, клавишу 2, синюю клавишу X (умножить).
Этим все удобства &quot;машинны&quot; не исчерпываются. Они проявляются
в полной мере тогда, когда требуются многочисленные вычисления для составление
таблиц и графиков.</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B>Калькулятор имеет:</B></P>
<UL>
<LI> програмную память объёмом в 100 или 256 шагов;</LI>
<LI>16 адресуемых регистров памяти для хранения данных или адресов перехода
в программе;</LI>
<LI> команды прямых и косвенных переходов в программе, команды вызова
подпрограм и команды возврата из подпрограм;</LI>
<LI>возможность обращения к подпрограмме внутри подпрограм. Глубина таких
обращений равна 5;</LI>
<LI>команды прямого и косвенного безусловного перехода;</LI>
<LI>четыре типа команд прямого и косвенного условного перехода (по условиям
x=0, x!=0 (не равно 0), x&gt;=0 (больше или равняется 0), x&lt;0);</LI>
<LI>команды организации циклов;</LI>
<LI>команды косвенной записи содержимого регистра X в регистры памяти;</LI>
<LI>команды косвенной индикации содержимого регистров памяти;</LI>
<LI>команды сброса счётчика адресов в нулевое состояние;</LI>
<LI>команда пуска и остановки при автоматическом вычислении по программе;</LI>
<LI>команда пошагового выполнения программы в режиме "Автоматическая работа";</LI>
<LI>индикация кодов трёх последовательных шагов программы и текущего состояния
счётчика адресов;</LI>
<LI>клавиши пошагового просмотра программы в сторону увеличения или уменьшения
адресов в режиме &quot;Программирование&quot;;</LI>
<LI>команда вывода результатов в файл для последующей печати на принтере</LI>
</UL>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B>Ввод чисел.</B></P>
<P align="left">Ввод чисел, операций и команд в микрокалькулятор осуществляется
нажатием соответствующих клавиш левой кнопкой мыши. Имеется пока не
полностью реализованная возможность ввода посредством клавиатуры. <FONT color="#999999">(Надо
отметить, что сложность реализации ввода с клавиатуры обусловлена отсутствием
подходящих по смыслу названий на клавишах стандартной клавиатуры. Автор
был бы благодарен за ценный совет по этой проблеме.) <FONT color="#000000">Многие
клавиши имеют двойную и тройную символику. Один символ изображён непосредственно
на клавише, второй - над клавишей красным цветом, третий - снизу или
справа от клавиши чёрным цветом. Ввод функции, символ которой изображён
красным цветом над клавишей, осуществляется нажатием на префиксную клавишу
F или К, затем на клавишу над которой изображён символ вводимой функции.
Назначение клавиш приведено в <FONT color="#6600CC"><A href="b3-34help1.htm">таблице
команд</A> <FONT color="#000000">(размер файла &gt;81 кбайт).</FONT></FONT></FONT></FONT></P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B>Два режима работы калькулятора.</B></P>
<P align="left"><B>"Автоматическая работа&quot;</B> - основной режим работы.<BR>
<B>"Программирование"</B> - режим предназначен для ввода кода программы,
включается посредством нажатия на клавиши F и ПРГ. Выход из режима - нажатием
клавиш F и АВТ.</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B>Регистры стека.</B></P>
<P align="left"><FONT color="#999999"><FONT color="#000000">В микроклькуляторе
имеются 5 операционных регистров X1, X, Y, Z, T. Регистр X служит для
приёма и хранения вводимого числа и результата вычислений. Его содержимое
отображается на индикаторе. </FONT><FONT color="#999999"><FONT color="#000000">Регистр
Y</FONT></FONT><FONT color="#000000"> служит для приёма информации из
регистра X, что обеспечивает при необходимости, ввод в регистр X второго
числа. Занесение </FONT><FONT color="#999999"><FONT color="#000000">числа</FONT></FONT>
<FONT color="#000000">в регистр Y происходит при нажатии на кнопку &quot;стрелка
вверх&quot;.</FONT></FONT></P>
</DIV>
</TD>
</TR>
<TR>
<TD height="897">
<TABLE width="100%" border="0">
<TR>
<TD width="17%" height="447"><IMG src="stack1.gif" width="119" height="159" alt="Рис. 1"></TD>
<TD width="83%">
<P align="center"><FONT size="+1">Схематичное представление регистров
стека. </FONT></P>
<P>Регистры стека X, Y, Z и T организованы по принципу магазинной
памяти, когда последовательно записанная информация может быть считана
только в последовательности, обратной последовательности записи
(последнее записанное число является первым). Например, когда вводится
операнд в регистр X командой чтения из регистра памяти, то содержимое
регистра X копируется в регистр Y (сдвигается вверх), а предыдущее
содержимое регистра Y копируется в регистр Z, предыдущее содержимое
регистра Z копируется в регистр T. При выполнении <FONT color="#6600CC"><A href="#two_place_operation">двухместной
операции</A></FONT> взаимодействуют регистры Y и X. Результат помещается
в регистр X, регистр Y получает содержимое регистра Z, регистр Z
получает содержимое регистра T, а содержимое регистра T остаётся
неизменным. Регистр X1 получает содержимое регистра X, которое там
было до выполнения этой операции (рис. 5). <A href="#register_X1">Регистр
X1 </A>служит для сохранения предыдущего содержимого регистра X.
</P>
</TD>
</TR>
<TR>
<TD width="17%" height="159"><IMG src="stack2.gif" width="119" height="159" align="top" alt="Рис. 2"></TD>
<TD width="83%">
<P align="center">&nbsp;</P>
<P align="center"><B>Команда продвижения стека вверх.<BR>
</B>(стрелка вверх)</P>
<P align="left">Сдвиг содержимого регистров стека происходит по схеме:
X->Y->Z->T (рис. 2). Содержимое регистра результата предыдущей операции
X1 не изменяется.</P>
<P align="left">&nbsp;</P>
</TD>
</TR>
<TR>
<TD width="17%" height="195"><IMG src="stack3.gif" width="119" height="159" alt="Рис. 3"></TD>
<TD width="83%">&nbsp;</TD>
</TR>
<TR>
<TD width="17%" height="168"><IMG src="stack4.gif" width="119" height="159" alt="Рис. 4"></TD>
<TD width="83%">
<P align="center"><B>Команда обмена содержимым регистров X и Y.<BR>
</B>(на клавише изображено XY со стрелками)</P>
<P align="center"><BR>
Схема обмена содержимым регистров показана на рисунке 4.</P>
</TD>
</TR>
<TR>
<TD width="17%" height="174"><IMG src="stack5.gif" width="119" height="159" alt="Рис. 5"></TD>
<TD width="83%">&nbsp;</TD>
</TR>
<TR>
<TD width="17%" height="226"><IMG src="stack6.gif" width="119" height="176" alt="Рис. 6"></TD>
<TD width="83%">
<P align="center"><B><A name="register_X1"></A>Регистр предыдущего
результата.</B></P>
<P align="left">В дополнение к четырём стековым регистрам в микроклькуляторе
имеется ещё один регистр , называемый регистром предыдущего результата.
Этот регистр сохраняет значение числа, которое находилось в регистре
X до выполнения операции. Для проверки этого числа нажмите клавиши
F и Вх. При этом произойдёт перемещение информации в стеке (рис.
6): X-&gt;Y-&gt;Z-&gt;T, X1-&gt;X.</P>
</TD>
</TR>
<TR>
<TD width="17%" height="180"><IMG src="stack7.gif" width="119" height="171" alt="Рис. 7"></TD>
<TD width="83%" height="180">
<DIV align="center">
<P>&nbsp;</P>
<P align="center"><B>Команда Rotate.<BR>
</B>(в оригинале изображено кольцо со стрелками)</P>
<P align="left">В результате выполнения этой команды обмен регистрами
стека произойдёт по схеме: X->X1, T->Z->Y->X, X1->T (рис. 7).</P>
</DIV>
</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD>
<DIV align="center">
<P><B>Регистры общего назначения.</B></P>
<P align="left">Это 16 адресуемых регистров памяти для хранения данных
или адресов переходов в программе. Номер регистра обозначается шеснадцатиричным
числом - от 0 до F. В оригинале &quot;руководства по эксплуатации&quot;
в название этих регистров введён префикс RG (RG0, RG1 ... и т.д.). Из
<FONT color="#999999"><FONT color="#000000"><FONT color="#6600CC"><A href="b3-34help1.htm">таблицы
команд </A></FONT></FONT></FONT>видно, что код команд обращения к регистрам
однозначно определяется вторым полубайтом кода команды, например, таких
как 40 -4F (запись в регистр памяти - клавиши П, 0 до П.F), 60 -6F (извлечение
из регистров памяти в регистр X - клавиши П, 0 до П.F) и других командах.
</P>
</DIV>
</TD>
</TR>
<TR>
<TD>
<DIV align="center">
<P><B><A name="stack_of_return"></A>Регистры стека возврата.</B></P>
<P align="left">Калькулятор имеет 5 регистров образующих стек возврата,
которые програмно недоступны, однако они позволяют программе вызвать
до 5-ти вложенных подпрограм. В ячейках стека возврата хранятся адреса
возврата из подпрограм.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD height="326">
<DIV align="left">
<P align="center"><A name="one_place_operation"></A><B>Одноместные операции.</B></P>
<P>Одноместные операции - это операции для выполнения которых требуется
один операнд. Операнд, над которам производится операция находится в
регистре X и высвечивается на индикаторе. Результат операции записывается
в регистр X, при этом содержимое остальных регистров не изменяется.
Следующие операции в Б3-34 являются одноместными: </P>
</DIV>
<UL>
<LI>
<DIV align="left">вычисление логарифмических функций (lg, ln);</DIV>
</LI>
<LI>степенных функций (x^2 - возведение в квадрат, e^x, 10^x);</LI>
<LI>тригонометрических прямых и обратных функций ();</LI>
<LI>вычисление квадратного корня (sqr);</LI>
<LI>вычисление обратной величины(1/x);</LI>
<LI>ввод числа пи (PI);<BR>
</LI>
</UL>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="two_place_operation"></A><B>Двухместные операции.</B></P>
<P align="left">Двухместные операции - это операции для выполнения которых
требуется два операнда, расположеных в регистрах X и Y. К таким операциям
относятся четыре арифметических действия (сложение, вычитание, умножение
и деление) и вычисление степенной функции x^y (x в степени y). Результат
операции записывается в регистр X. При этом информация в регистре Y,
хранящаяся до выполнения операции заменяется <FONT color="#000000">содержимым
регистра Z. Схема передвижения в стеке T=T-&gt;Z-&gt;Y, X1=содержимому
регистра X до выполнения операции</FONT>.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B><A name="chain_calculations"></A>Цепочечные вычисления.</B></P>
<P align="left"> Если на индикаторе высвечивается результат предыдущих
вычислений, то набор на клавиатуре нового числа автоматически передвигает
информацию из регистра X в регистр Y. <FONT color="#000000">Перемещение
в стеке происходит по схеме X-&gt;Y-&gt;Z-&gt;T, предыдущее содержимое
T теряется</FONT>. Таким образом, результат вычисления предыдущей операции
может участвовать в качестве второго операнда при выполнении последующих
вычислений. </P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B><A name="bp_jump"></A>Команда безусловного перехода.</B></P>
<P>Команда безусловного перехода реализуется клавишей БП и последующим вводом
адреса перехода. Эта команда прерывает естественный порядок выполнения
программы и осуществляет преход к выполнению команды, указанной в адресе
перехода. Длина команды - два шага. Её можно использавать ещё для ручного
перехода к желаемому адресу при отладке программы.</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="conditional_jump"></A><B>Команды перехода по условию.</B></P>
<P align="left">Команды перехода по условию ( x&lt;0 либо x=0, x&gt;=0,
x!=0 (не равно нулю)) реализуются клавишей F, клавишей условия &quot;
x&lt;0&quot;, &quot;x=0&quot;, &quot;x&gt;=0&quot;, &quot;x!=0&quot;
и вводом адреса перехода. Проверяется сожержимое регистра X на выполнение
заданного условия. Если условие <FONT color="#CC0000">не выполняется</FONT>,
то следующей по программе будет выполнена команда, адрес которой указан
непосредственно в команде условного перехода. Если условие выполняется,
то следующей командой будет следующая за адресом прехода команда. Длина
команды - два байта (шага) програмной памяти.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="routine_call"></A><B>Команда вызова продпрограммы.</B></P>
<P align="left">Команда вызова продпрограммы реализуется клавишей ПП и
сдующему за ней адресом (начала подпрограммы). При этом в <A href="#stack_of_return">стек
возврата</A> записывается следующий адрес программы, на который в дальнейшем
будет сделан взврат из подпрограммы (В/О). Длина команды - два шага.
В режиме &quot;Автоматическая работа&quot;, когда программа не выполняется,
нажатие на клавишу ПП производит пошаговое выполнение программы.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="indirect_routine_call"></A><B>Команды косвенного вызова продпрограммы.</B></P>
<P align="left">Команда косвенного вызова продпрограммы реализуется клавишами
К , ПП и клавишей адресуемого регистра ( 0 ... F ). <A href="#stack_of_return">
</A> Длина команды - один шаг. С помощью этой команда происходит <FONT color="#660099">
<A href="#registers_modification_table">модификация</A></FONT> адреса,
хранящегося в адресуемом регистре, индекс которого входит в команду.
Затем, записывается в <A href="#stack_of_return">стек возврата</A> следующий
адрес программы, на который в дальнейшем будет сделан взврат из подпрограммы
(командой В/О), и осуществляется вызов подпрограммы, записанной по модифицированному
адресу. </P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="routine_return"></A><B>Команда возврата из продпрограммы.</B></P>
<P align="left">Команда возврата из продпрограммы реализуется клавишей
В/О. Из <A href="#stack_of_return">стека возврата</A> читается последний
адрес, который записывается туда во время вызова подпрограммы посредством
команды ПП ... (или К ПП ...), и происходит переход на этот адрес. </P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><A name="#Косвенный безусловный переход"></A><B>Косвенный
безусловный переход.</B></P>
<P>Команда косвенного безусловного перехода по модифицированному адресу
реализуеся клавишами К, БП и клавишей адресуемого регистра (от 0 до F,
<FONT color="#000000">от A до F - надписи чёрного цвета</FONT>). При исполнении
этой команды происходит модификация адреса, хранящегося в адресуемом регистре
(индекс которого входит в команду), и происходит переход к испонению команды,
записанной по новому (модифицированному) адресу. Модификация адреса происходит
в зависимости от номера регистра, входящего в команду. Если команда содержит
номер одного из регистров 0, 1, 2, 3, то при выполнении команды из содержимого
адресуемого регистра вычитается 1. Если номер адресуемого регистра 4 ,
5 или 6, то к содержимому регистра прибавляется 1. Если номер адресуемого
регистра от 7 до F, то содержимое адресуемого регистра не изменяется.</P>
</TD>
</TR>
</TABLE>
<P align="center"><A name="registers_modification_table"></A><B>Таблица модификации
при косвенной адресации.</B></P>
<TABLE width="96%" border="1" align="center" bgcolor="#E0FFF0">
<TR>
<TD width="12%">
<DIV align="center">Регистр </DIV>
</TD>
<TD width="20%">
<DIV align="center">Модификация</DIV>
</TD>
<TD width="68%">
<DIV align="center">Надпись</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">0</DIV>
</TD>
<TD width="20%">
<DIV align="center">-1</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 0</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">1</DIV>
</TD>
<TD width="20%">
<DIV align="center">-1</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 1</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">2</DIV>
</TD>
<TD width="20%">
<DIV align="center">-1</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 2</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">3</DIV>
</TD>
<TD width="20%">
<DIV align="center">-1</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 3</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">4</DIV>
</TD>
<TD width="20%">
<DIV align="center">+1</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 4</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">5</DIV>
</TD>
<TD width="20%">
<DIV align="center">+1</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 5</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">6</DIV>
</TD>
<TD width="20%">
<DIV align="center">+1</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 6</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">7</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 7</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">8</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 8</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">9</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью 9</DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">A</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью , (запятая), под клавишей чёрным
цветом - латинская буква A. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">B</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью /-/, под клавишей чёрным цветом -
латинская буква B. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">C</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью ВП, под клавишей чёрным цветом -
латинская буква C. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">D</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью Cx, под клавишей чёрным цветом -
латинская буква D. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">E</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью в виде стрелки вверх, справа от клавиши
чёрным цветом - латинская буква E. </DIV>
</TD>
</TR>
<TR>
<TD width="12%">
<DIV align="center">F</DIV>
</TD>
<TD width="20%">
<DIV align="center">нет</DIV>
</TD>
<TD width="68%">
<DIV align="center">Клавиша с надписью - (знак минус), справа от клавиши
чёрным цветом - латинская буква F. </DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" height="125" align="center">
<TR>
<TD>
<P align="center"><A name="indirect_conditional_jump"></A><B>Косвенный переход
по условию.</B></P>
<P>Команды косвенных переходов по условию реализуется клавишей &quot;К&quot;,
клавишей условия ( x&lt;0 либо x=0, x&gt;=0, x!=0 (не равно нулю)) и клавишей
адресуемого регистра (от &quot;0&quot; до &quot;F&quot;). С помощью этой
команды проверяется содержимое регистра X на выполнение заданного условия.
Если условие не выполняется (<FONT color="#000000">обратите внимание,
именно - когда</FONT><FONT color="#999999"> <FONT color="#CC0000">не выпоняется</FONT></FONT>),
то происходит <FONT color="#660099"> <A href="#registers_modification_table">модификация</A></FONT>
(изменение) адреса, хранящегося в адресуемом регистре, индекс которого
входит в команду, и осуществляется переход к выполнению команды, записанной
по модифицированному адресу. Если условие выполняется, то происходит переход
к выполнению следующей команды. При этом адрес, записанный в адресуемом
регистре, не модифицируется.</P>
</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
</TR>
</TABLE>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="indirect_mem_read"></A><B>Команды косвенного чтения регистра
памяти.</B></P>
<P align="left">Команда модифицирует регистр , номер которого входит в
команду (согласно <A href="#registers_modification_table">таблице модификации)</A>,
после чего происходит чтение соответствующего регистра в регистр X.
Пример. Если содержимое регистра 0 до выполнения команды было равно
3, то при выполнении команды К ИП 0 уменьшается содержимое регистра
0 (теперь оно равно 2) и происходит чтение содержимого регистра 2 в
регистр X.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="indirect_mem_write"></A><B>Команды косвенной записи в регистр
памяти.</B></P>
<P align="left">Команда модифицирует регистр , номер которого входит в
команду (согласно <A href="#registers_modification_table">таблице модификации</A>),
после чего происходит запись в соответствующий регистр содержимое регистра
X. Пример. Если содержимое регистра 0 до выполнения команды было равно
3, то при выполнении команды К П 0 уменьшается содержимое регистра 0
(теперь оно равно 2) и происходит запись содержимого регистра X в регистр
2.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><A name="L0_discription"></A><B>Команды организации циклов.</B></P>
<P align="left">Команды организации циклов организуются клавишами L0,
L1, L2, L3 в сочетании с префиксной клавишей F. Команда состоит из кода
команды и следующего за ней адреса перехода. При выполнении команды
L0 происходит обращение к регистру памяти RG0. При каждом выполнении
этой команды из содержимого регистра 0 вычитается 1 и производится анализ
его на нуль. Если оно не равно нулю, происходит переход к выполнению
команды перехода, входящего в команду. Если содержимое регистра памяти
RG0 равно нулю, то цикл завершается и выполняется следующая команда.
Длина команды - два шага.</P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<P align="center"><B>Программирование.</B></P>
<P> Вход в режим программирования осущесвляется посредством нажатия на клавиши
F и ПРГ. Калькулятор перейдёт на текущий адрес программы. Если требуется
перейти на заданый адрес, то перед входом в режим программирования надо
перейти на этот адрес нажатием клавиши БП и вводом адреса. Перемещение
по программе происходит автоматически при вводе команд или принудительно
- клавишами ШГ. Справа на индикаторе высвечивается адрес следующего шага
программы. В других полях индикатора высвечиваются (3 поля) коды введённых
команд в порядке возрастания, слева направо. <BR>
Если необходимо исключить из программы какую-либо команду, необходимо
нажать клавишу К и клавишу НОП, шаг программы заполнится командой, которая
ничего не делает. Выход из режима &quot;Программирование&quot; осуществляется
нажатием на клавиши F и АВТ.</P>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B>Вычисление по программе.</B></P>
<P align="left">Вычисления по программе начинаются нажатием на клавишу
С/П. Начинается выполнение программы с текущего адреса. Если требуется
начать (или продолжить) программу с конкретного адреса, то необходимо
перейти на этот адрес нажатием клавиши БП и вводом адреса. Останов вычислений
осуществляется повторным нажатием клавиши С/П. </P>
</DIV>
</TD>
</TR>
</TABLE>
<BR>
<TABLE width="96%" border="0" align="center">
<TR>
<TD>
<DIV align="center">
<P><B>Отличия от оригиналального Б3-34.</B></P>
<P align="left">При косвенном обращении команд к регистрам, когда должен
быть считан номер регистра, от содержимого стчитываемого регистра выделяется
целая часть (дробная не учитывается, но и не меняется), из которой выделятся
младшее значимое, не превышающее количества регистров памяти минус 1
(это 4 младших бита). В случае считывания адреса перехода используется
целая часть содержимого регистра. Если адрес перехода окажется за пределами
программы, - программа выдаст соответствующее предупреждение. </P>
</DIV>
</TD>
</TR>
</TABLE>
<P align="center"><!-- #BeginDate format:Sw1m -->5 May, 2002 3:02<!-- #EndDate --> </P>
</BODY>
</HTML>