Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорная техника.doc
Скачиваний:
37
Добавлен:
01.05.2014
Размер:
3.96 Mб
Скачать

Реализация на ассемблере циклических программ

Цикл с постусловием (цикл «до»):

Тело цикла выполняется хотя бы один раз

Цикл с предусловием (цикл «после»):

Тело цикла может не выполнятся ни разу

Пример 2. Задан одномерный массив х, состоящий из 5 элементов. Найти математическое ожидание.

х {х1, х2, х3, х4, х5}

Схема алгоритма

<21> -> x1

<22> ->x2

<25> ->x5

<20> ->xi

<26> -> sum

3: MOV 1 00; AK:=0;

MOV1 0 26;

4: MOV 1 21; AK:=21

MOV1 0 20; Axi:=Ax1

5: M1: MOV 0 26; AK:=sum

ADD 2 20; AK:= sum + xi

MOV1 0 26;

6: MOV 0 20;

ADD 1 01;

MOV1 0 20;

7: MOV 0 20;

SUB 1 25;

JM 0 M1;

JZ 0 M1;

8: MOV 0 26;

DIV 1 05;

9: Out

10: Stop

Программа в машинных кодах

00 07100

01 08026

02 07121

03 08020

M1: 04 07026

05 03220

06 08026

07 07020

08 03101

09 08020

10 07020

11 04125

12 10004; M1

13 09004; M1

14 07026

15 06105

16 02000

17 12000

Последовательность микрокоманд ADD 2 20

РА: =СЧАК

РС: =Чт[РА]

РК:=РС

РА:= [РА]

РС: =Чт[РА]

А:=РС

РА:= [А]

РС:= Чт[РА]

РО:=РС

ПУСК АУ

СЧАК:=СЧАК+1

Анализ и синтез комбинационных схем

Комбинационная схема – схема, в которой выходные переменные зависят только от состояния входов и не зависят от состояния выходов в предыдущий момент времени.

СДНФ – совершенная дизъюнктивная нормальная форма.

СКНФ – совершенная конъюнктивная нормальная форма.

Таблица истинности

i

A

B

y

mi

Mi

0

0

0

0

1

0

1

1

2

1

0

1

3

1

1

1

Минтерм – выражение.

Минимальный минтерм - произведение входных переменных.

yСДНФ =

yСДНФ =

yСКНФ=

yСКНФ=

Понятие основных (базовых) и базисных функций двух переменных

Конъюнкция “And” “И

x

y

z

0

0

0

0

1

0

1

0

0

1

1

1

Дизъюнкция “Or” “ИЛИ

x

y

z

0

0

0

0

1

1

1

0

1

1

1

1

Отрицание “Not” “НЕ

x

y

0

1

1

0

И”, “ИЛИ”, “НЕ” – три основные (базовые) функции.

Рассмотрим базисные функции

Not-And “НЕ-И

x

y

z

0

0

0

1

0

1

0

1

1

0

0

1

1

1

1

0

Not-Or “НЕ-ИЛИ

x

y

z

0

0

0

1

0

1

1

0

1

0

1

0

1

1

1

0

В базисе Not-And реализуем следующие функции:

НЕ

И

ИЛИ

В базисе Not-Or реализуем следующие функции:

НЕ

ИЛИ

И

- штрих Шеффера – базисная функция

- стрелка Пирса

- функция неравнозначности

Задание для самостоятельного выполнения. В базисе Not-And реализовать функцию «неравнозначность». В базисе Not-or реализовать функцию «равенство»

Построение одноразрядного полного сумматора

Сi+1 – перенос в следующий разряд

Si – значение суммы в i-ом разряде

Формальный синтез полного одноразрядного сумматора на основе булевой алгебры

Таблица истинности полного одноразрядного сумматора

Ai

Bi

Ci-1

Si

Ci+1

0

0

0

0

0

0

0

1

1*

0

0

1

0

1*

0

0

1

1

0

1**

1

0

0

1*

0

1

0

1

0

1**

1

1

0

0

1**

1

1

1

1*

1**

СДНФ:

Задание для самостоятельного выполнения. Составить структурную схему для реализации полного сумматора с использованием функций and, or, not.

Минимизация логических функций с помощью карт Карно

Функция двух переменных

x

y

f(x, y)

0

0

f(0,0)

0

1

f(0,1)

1

0

f(1,0)

1

1

f(1,1)

Карта Карно

y

x

0

1

0

f(0,0)

f(0,1)

1

f(1,0)

f(1,1)

Функция трёх переменных

x

y

z

f(x, y, z)

0

0

0

f(0,0,0)

0

0

1

f(0,0,1)

0

1

0

f(0,1,0)

0

1

1

f(0,1,1)

1

0

0

f(1,0,0)

1

0

1

f(1,0,1)

1

1

0

f(1,1,0)

1

1

1

f(1,1,1)

Карта Карно

x yz

00

01

11

10

0

f(0,0,0)

f(0,0,1)

f(0,1,1)

f(0,1,0)

1

f(1,0,0)

f(1,0,1)

f(1,1,1)

f(1,1,0)

Функция четырех переменных

w

x

y

z

f(w,x, y, z)

0

0

0

0

f(0,0,0,0)

0

0

0

1

f(0,0,0,1)

0

0

1

0

f(0,0,1,0)

0

0

1

1

f(0,0,1,1)

0

1

0

0

f(0,1,0,0)

0

1

0

1

f(0,1,0,1)

0

1

1

0

f(0,1,1,0)

0

1

1

1

f(0,1,1,1)

1

0

0

0

f(1,0,0,0)

1

0

0

1

f(1,0,0,1)

1

0

1

0

f(1,0,1,0)

1

0

1

1

f(1,0,1,1)

1

1

0

0

f(1,1,0,0)

1

1

0

1

f(1,1,0,1)

1

1

1

0

f(1,1,1,0)

1

1

1

1

f(1,1,1,1)

Карта Карно для функции четырёх переменных

wx yz

00

01

11

10

00

f(0,0,0,0)

f(0,0,0,1)

f(0,0,1,1)

f(0,0,1,0)

01

f(0,1,0,0)

f(0,1,0,1)

f(0,1,1,1)

f(0,1,1,0)

11

f(1,1,0,0)

f(1,1,0,1)

f(1,1,1,1)

f(1,1,1,0)

10

f(1,0,1,1)

f(1,0,0,1)

f(1,0,1,1)

f(1,0,1,0)

Задача. Задана логическая функция трёх переменных в виде таблицы истинности. Составить карту Карно.

x

y

z

f(x, y, z)

0

0

0

1*

0

0

1

1*

0

1

0

1*

0

1

1

0

1

0

0

0

1

0

1

1*

1

1

0

0

1

1

1

1*

СДНФ:

x yz

00

01

11

10

0

1

1

0

1

1

0

1

1

0



Объединяем, если возможно, единицы в группы и стараемся сделать так, чтобы размер группы был больше и, чтобы таких групп было как можно меньше. Каждая единица должна входить хотя бы в одну группу.

Для нашего примера возможны следующие варианты:

1)

2)

3)

Вариант 2 является самым лучшим.