mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-11-30 20:53:08 +03:00
63cf01e274
git-svn-id: svn://kolibrios.org@1863 a494cfbc-eb01-0410-851d-a64ba20cac60
740 lines
31 KiB
HTML
740 lines
31 KiB
HTML
<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%"> </TD>
|
||
<TD height="102" width="39%"><FONT size="-1"><I>Данный документ - есть синтез
|
||
оригинального "Руководства по эксплуатации" с дополнениями автора
|
||
программы "Калькулятор Б3-34". </I></FONT></TD>
|
||
</TR>
|
||
</TABLE>
|
||
<P align="center"> </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,
|
||
затем на синюю клавишу "стрелка вверх", затем на клавишу 2 и
|
||
на синюю клавишу +, на индикаторе высветится результат (4). Если Вам надо
|
||
сохранить несколько длинных чисел для повторного их использования, достаточно
|
||
после ввода числа нажать две клавиши - П и любую, от 0 до F, и продолжить
|
||
работу. Повторим предыдущий пример, только при этом сохраним операнды
|
||
в памяти. Нажимаем клавишу 2, клавишу П, клавишу 1, клавишу 2, клавишу
|
||
П, клавишу 2, клавишу +, на индикаторе высветится результат (4). Теперь
|
||
проверим, чему будет равно произведение введёных ранее чисел. Нажимаем
|
||
клавишу ИП, клавишу 1, клавишу ИП, клавишу 2, синюю клавишу X (умножить).
|
||
Этим все удобства "машинны" не исчерпываются. Они проявляются
|
||
в полной мере тогда, когда требуются многочисленные вычисления для составление
|
||
таблиц и графиков.</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>=0 (больше или равняется 0), x<0);</LI>
|
||
<LI>команды организации циклов;</LI>
|
||
<LI>команды косвенной записи содержимого регистра X в регистры памяти;</LI>
|
||
<LI>команды косвенной индикации содержимого регистров памяти;</LI>
|
||
<LI>команды сброса счётчика адресов в нулевое состояние;</LI>
|
||
<LI>команда пуска и остановки при автоматическом вычислении по программе;</LI>
|
||
<LI>команда пошагового выполнения программы в режиме "Автоматическая работа";</LI>
|
||
<LI>индикация кодов трёх последовательных шагов программы и текущего состояния
|
||
счётчика адресов;</LI>
|
||
<LI>клавиши пошагового просмотра программы в сторону увеличения или уменьшения
|
||
адресов в режиме "Программирование";</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">(размер файла >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>"Автоматическая работа"</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 происходит при нажатии на кнопку "стрелка
|
||
вверх".</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"> </P>
|
||
<P align="center"><B>Команда продвижения стека вверх.<BR>
|
||
</B>(стрелка вверх)</P>
|
||
<P align="left">Сдвиг содержимого регистров стека происходит по схеме:
|
||
X->Y->Z->T (рис. 2). Содержимое регистра результата предыдущей операции
|
||
X1 не изменяется.</P>
|
||
<P align="left"> </P>
|
||
</TD>
|
||
</TR>
|
||
<TR>
|
||
<TD width="17%" height="195"><IMG src="stack3.gif" width="119" height="159" alt="Рис. 3"></TD>
|
||
<TD width="83%"> </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%"> </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->Y->Z->T, X1->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> </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. В оригинале "руководства по эксплуатации"
|
||
в название этих регистров введён префикс 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->Z->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->Y->Z->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<0 либо x=0, x>=0,
|
||
x!=0 (не равно нулю)) реализуются клавишей F, клавишей условия "
|
||
x<0", "x=0", "x>=0", "x!=0"
|
||
и вводом адреса перехода. Проверяется сожержимое регистра 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> записывается следующий адрес программы, на который в дальнейшем
|
||
будет сделан взврат из подпрограммы (В/О). Длина команды - два шага.
|
||
В режиме "Автоматическая работа", когда программа не выполняется,
|
||
нажатие на клавишу ПП производит пошаговое выполнение программы.</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>Команды косвенных переходов по условию реализуется клавишей "К",
|
||
клавишей условия ( x<0 либо x=0, x>=0, x!=0 (не равно нулю)) и клавишей
|
||
адресуемого регистра (от "0" до "F"). С помощью этой
|
||
команды проверяется содержимое регистра 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> </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>
|
||
Если необходимо исключить из программы какую-либо команду, необходимо
|
||
нажать клавишу К и клавишу НОП, шаг программы заполнится командой, которая
|
||
ничего не делает. Выход из режима "Программирование" осуществляется
|
||
нажатием на клавиши 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>
|