I
МИКРОКОНТРОЛЛЕРЫ
[
Что касается графической основы программирования,
то любую программу всегда можно разделить на отдель-
ные логически законченные фрагменты. Эти фрагменты
(блоки) заканчиваются операциями, после которых линей-
ное исполнение программы однозначно прекращается.
Это безусловные переходы и возвраты из подпрограмм
(RET,
RETI).
Ниже приведен
пример подпрограммы на
классическом ассемблере, который содержит три таких
блока.
Sub: ldi
XL,$60
ldi
XH,$00
MO:
Id
rl6,X
cpi
Г І6 , 1
breq
Ml
cpi
rl6, 2
brne
М2
sbiw
X, 2
rjmp
M0
Ml:
sbi
PortC,0
cbi
PortC,1
ret
М2:
sbi
PorrC,2
cbi
PortC,3
ret
Первый блок начинается с метки “Sub“ и заканчива-
ется оператором безусловного перехода “rjmp”, второй и
третий блоки начинаются с меток “М1” и “М2” и заканчи-
ваются оператором возврата из подпрограммы “ret”.
В АВ эти блоки можно растащить на плоскости, а пе-
реходы о'і образить графически в виде ломаных линий.
При этом то же самое будет восприниматься несколько
яснее.
Полная копия приведенного выше примера уже
будет выглядеть следующим образом
(рис. 1).
Следует обратить внимание на то, что в этом приме-
ре уже нет имен меток “МО”, “М1” и “М2”. В классическом
ассемблере переходы осуществляются в основном
на
имена меток. Сколько мест ветвления, столько и разных
имен меток. В АВ в них просто нет необходимости
Для построения конструкции алгоритма в АВ предусмот-
рено пять базовых элементов используются. Это: Label. Vertex,
Field, Conditional branch и Unconditional branch
(рис. 2).
Элемент LABEL (метка) отображается в виде короткого
вертикального штриха внутри блока. Метка может иметь
необязательное имя. Назначение меток то же, что и в клас-
сическом ассемблере - обозначение мест в программе для
ветвлений.
Элемент VERTEX (вершина блока) по отображению и
предназначению аналогичен меткам. Но в отличие от метки
он всегда является началом блока и задает его геометричес-
кое расположение на плоскости.
Элемент FIELD (поле) - наиболее использующийся эле-
мент, в котором записывается большинство операций. Он
представляет собой отцентрированную строку в середине
блока.
Элемент CONDITIONAL BRANCH предназначен для реа-
лизации условных переходов. Он представляет собой овал,
внутри которого вписывается условие перехода и исходящая
линия со стрелкой на конце, которая указывает на место пе-
рехода в случае, если условие выполняется.
Элемент UNCONDITIONAL BRANCH предназначен для
реализации безусловных переходов. Он представляется в
виде линии со стрелкой на конце исходящей из оси блока
операторов.
Редактор позволяет произвольно компоновать программ-
ные блоки на рабочем пространстве в соответствии с жела-
ниями программиста. Например, приведенный выше пример
может быть перекомпонован следующим образом
(рис. 3).
При этом, результат компиляции останется неизменным.
Для объявления имен переменных и констант в АВ пре-
дусмотрена специальная электронная таблица, в которой есть
несколько секций:
- для объявления
переменных оперативной
памяти
(SRAM);
-
переменных EEPROM;
- имен рабочих регистров;
- имен управляющих регистров;
- имен битов;
- констант.
Sub
$60
->
XL
$00
->
ХН
------
Н
[X]
->
ГІ6
гіб
=
1
С
^ ~
>
Г І6
=
2
С
X +
2
Рис. 1
1
->
PortC.2
0
->
P o rte .3
Ret
1
->
PortC.0
0
->
PortC.1
Ret
Vertex
— Sub
$60
-> XL
I «
\
I
Радиолюбитель - 0 1 /2 0 0 7
предыдущая страница 42 Радиолюбитель 2007-01 читать онлайн следующая страница 44 Радиолюбитель 2007-01 читать онлайн Домой Выключить/включить текст