- •Команды (директивы) управления программой «Монитор»
- •Директивы работы с памятью
- •Директивы работы с регистрами
- •Способы адресации
- •Выполнение на ассемблере последовательных алгоритмов с различными способами адресации при выполнении арифметических операций
- •Реализация ветвящихся процессов. Команды условных переходов
- •Команды для переходов учебного компьютера
- •Синтаксис команд безусловного перехода
- •Реализация на ассемблере циклических программ
- •Анализ и синтез комбинационных схем
- •Понятие основных (базовых) и базисных функций двух переменных
- •Построение одноразрядного полного сумматора
- •Формальный синтез полного одноразрядного сумматора на основе булевой алгебры
- •Разорванные группы
- •Формы представления чисел
- •Примеры представления чисел с фиксированной точкой в формате sfix()
- •Достоинства и недостатки представления чисел с фиксированной точкой
- •Представление данных в форме с плавающей точкой
- •Видоизменённая (современная) форма представления чисел с плавающей точкой
- •Особенности микроконтроллеров семейства avr atmel
- •Адресное пространство мк avr (распределение памяти)
- •Регистр состояния, регистр флагов.
- •Системы команд процессоров atmel
Реализация на ассемблере циклических программ
Цикл с постусловием (цикл «до»):
Тело
цикла выполняется хотя бы один раз
Цикл с предусловием (цикл «после»):
Тело
цикла может не выполнятся ни разу
Пример 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-ом разряде
Формальный синтез полного одноразрядного сумматора на основе булевой алгебры
Таблица истинности полного одноразрядного сумматора
|
СДНФ:
|
Задание для самостоятельного выполнения. Составить структурную схему для реализации полного сумматора с использованием функций and, or, not.
Минимизация логических функций с помощью карт Карно
Функция двух переменных
|
Карта Карно
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 yz |
| ||||
00 |
01 |
11 |
10 |
| |
0 |
1 |
1 |
0 |
1 | |
1 |
0 |
1 |
1 |
0 | |
|
|
Объединяем, если возможно, единицы в группы и стараемся сделать так, чтобы размер группы был больше и, чтобы таких групп было как можно меньше. Каждая единица должна входить хотя бы в одну группу.
Для нашего примера возможны следующие варианты:
1)
2)
3)
Вариант 2 является самым лучшим.