Программные методы обеспечения безопасности. Понятие программной реализации алгоритмов. Программные реализации функций алгебры логики

Страницы работы

Фрагмент текста работы

тема 6. Программные методы обеспечения безопасности – 6 часов

Понятие программной реализации алгоритмов. Программные реализации функций алгебры логики (ФАЛ) – 2 часа.

Понятие программной реализации алгоритмов

Основой систем железнодорожной автоматики являются дискретные устройства, которые подразделяются на два больших класса, комбинационные автоматы (схемы без памяти) и последовательные автоматы (схемы с памятью). Аппаратная реализация этих устройств была основным способом построения СЖАТ до начала 80-х годов. Алгоритмы управления, которые выполняются с помощью дискретных устройств, также можно подразделить на комбинационные и автоматные. При их программной реализации могут быть использованы методы, основанные на известных способах синтеза автоматов на аппаратных средствах или специальные методы, удобные только для программных средств.

Программные реализации функций алгебры логики (ФАЛ)

Комбинационные алгоритмы чаще всего задаются с помощью функций алгебры логики, которые являются математическим аппаратом для представления комбинационных схем. Широкое практическое использование методов программной реализации ФАЛ стало возможным только в микропроцессорных системах. При этом качество программ оценивается следующими показателями: числом команд в программе; объемом памяти, необходимой для описания функции; объемом промежуточной памяти, необходимой для хранения промежуточных результатов вычислений; временем работы программы в выбранных единицах измерения (пропорционально числу выполняемых команд).

Существуют компиляционные и интерпретирующие методы программной реализации дискретных устройств.

При компиляционном методе для каждого дискретного устройства создается своя программа. Достоинством этого метода является то, что при выполнении программы не требуется ввода в ЭВМ исходных данных, кроме набора входных переменных и слова начального состояния (для автоматов с памятью). К компиляционным относятся методы непосредственного вычисления ФАЛ и метод бинарных программ.

При интерпретирующем методе строят универсальную программу, что является его достоинством. Однако при выполнении программы необходимо вводить в память ЭВМ данные о конкретном дискретном устройстве. К интерпретирующим методам относятся метод адресных программ, метод отображения входного набора и метод адресных переходов.

Метод непосредственного вычисления ФАЛ основан на вычислении отдельных частей логической формулы в соответствии с законами алгебры логики. Рассмотрим реализацию данного метода на примере функции

f = a (bc v bc)                                                                                        (1)

Алгоритм программы представлен на рис. 1. В табл. 1 приведена программа на языке Ассемблер.

Цифрами на рис. 1 указаны команды, которые реализуют соответствующий блок программы. Переменные а, b, с подаются в порты ввода с именами VAR1, VAR2, VAR3, а результат вычисления выводится в порт с именем RES. В памяти выделена область из трех ячеек М1, М2, МЗ для хранения соответственно переменных a, b и с. Адрес ячейки Ì1 имеет имя BASE. Переменные представлены значениями 0 и 1. Для каждой переменной отводится 1 байт, т. е. одна ячейка памяти, имеющая восемь разрядов (в восьмиразрядном микропроцессоре). Поэтому значению 0 соответствует слово 00000000, а значению 1 — слово 00000001.

Метод непосредственного вычисления обладает простотой и наглядностью. Размеры программ и время их вычислений определяются сложностью конкретных булевых формул.

Рис. 1. Алгоритм программы непосредственного вычисления

Таблица 1

Метка

Мнемокод команды

Операнды

Комментарий

1

2

3

4

5

6

START:

LXI

IN

MOV

INX

IN

MOV

H, BASE

VAR1

M, A

H

VAR2

M, A

Адресация M1

a ® A

a ® M1

Адресация M2

b ® A

b ® M2

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

BASE:

INX

IN

MOV

CMA

DCX

ANA

MOV

MOV

CMA

INX

ANA

ORA

DCX

DCX

ANA

OUT

JMP

DB

H

VAR3

M, A

A

H

M

B, A

A, M

A

H

M

В

H

H

M

RES

START

?, ?, ?

Адресация M3

с ® A

с ® M3

Вычисление с

Адресация M2

Вычисление bc

bc ® B

b ® A

b

Адресация M3

bc

bc v bc

Адресация M1

f = a (bc v bc)

Вывод f

Переход к команде 1

Ячейки М1, М2 и М3

Метод бинарных программ основан на том, что процесс вычисления ФАЛ можно свести к последовательности выполнения команд условного перехода i: если A, то j, иначе i + 1, где i — порядковый номер команды; А — булева переменная, значение которой проверяется данной командой. Если А = 1, то осуществляется переход к выполнению команды с порядковым номером j, если А = 0 — переход к выполнению команды с порядковым номером i + 1.

Алгоритм вычисления функции (1) по бинарной программе представлен на рис. 2. В табл. 2 приведена ее запись на языке Ассемблер.

Первые девять команд совпадают с соответствующими командами в табл

Похожие материалы

Информация о работе