- •Методические указания
- •Разработка и выполнение программ на микротренажере мт1804
- •Лабораторная работа №1 программа загрузки рон бис к1804вс1
- •Лабораторное задание
- •Лабораторная работа №2 выполнение арифметических и логических операций
- •Лабораторное задание
- •Лабораторная работа №3 ввод данных, организация переходов и цикла
- •Лабораторное задание
- •Лабораторная работа №5
- •Лабораторное задание
Лабораторное задание
Привести расшифровку кода команд, приведенных в табл. 8.
Загрузить команды из табл. 8 в микротренажер.
Выполнить программу. Просмотреть при выполнении команды «Чтение» данные на индикаторах.
Лабораторная работа №3 ввод данных, организация переходов и цикла
В лабораторной работе выполняется ввод данных, организация переходов и цикла по алгоритму, приведенному на рис. 6.
Записываем в таблицу программу в машинных кодах. Проставляем все адреса памяти от 0 до 14 и организуем переходы к нужному адресу, указанному в алгоритме. В 6-ю тетраду заносим команду 0001 – переход на адрес, указанный в 7-й тетраде. Начиная с 7-го адреса, выполняем команду «Продолжить». Кроме того, в программу вводим арифметические операции: сложение с единицей и сложение двух чисел для закрепления пройденного.
Рис. 6
Лабораторное задание
Составить программу «Ввод данных, организация переходов и цикла» в машинном коде.
2. Привести расшифровку кода команд.
3. Загрузить команды в микротренажер.
4. Выполнить программу. Просмотреть при выполнении команды «Чтение» данные на индикаторах.
ЛАБОРАТОРНАЯ РАБОТА №4
ЦИКЛИЧЕСКОЕ СЧИТЫВАНИЕ
С УСЛОВНЫМ ПЕРЕХОДОМ
В этой работе после ввода каждого значения данных переходим к подпрограмме, задерживающей ввод следующего числа данных в 3 раза (загрузка R0=3). После ввода D0, D1, D2 переходим к началу программы (адрес 0).
Алгоритм программы приведен на рис 7.
В программе загружаются произвольные значения D0, D1, D2. После загрузки каждого значения переходим к подпрограмме по команде 0101 в 6-й тетраде (переход к подпрограмме). При этом в 7-й тетраде указываем адрес перехода: 0100, так как подпрограмма начинается с адреса 4.
В подпрограмме загружаем число R0=3. Далее вычитаем единицу. Читаем полученное число. Проверяем условие: равен ли результат нулю? Если нет, то возвращаемся к адресу 5, вычитаем единицу и т.д. Если число равно нулю, то переходим к адресу 8, в котором записываем команду 0110 в 6-й тетраде – возврат из подпрограммы.
Для организации проверки условия используем команду 0000 в
6-й тетраде – переход на адрес из регистра МК, если F≠0. И в 7-й тетраде указываем адрес перехода – 0101 (5). В противном случае, если F=0, программа автоматически переходит на следующий адрес (8) и возвращается из подпрограммы.
Рис. 7
Лабораторное задание
1. Составить программу «Циклическое считывание с условным переходом».
2. Привести расшифровку кода команд.
3. Загрузить команды в микротренажер.
4. Выполнить программу. Просмотреть при выполнении команды «Чтение» данные на индикаторах.
Лабораторная работа №5
НАХОЖДЕНИЕ НАИБОЛЬШЕГО ИЗ ТРЕХ ЧИСЕЛ\
В этой программе загружаются 3 числа. Необходимо в результате сравнения чисел выявить наибольшее и считать его. Для сравнения чисел применим вычитание, и по знаку результата выясним, какое число больше. Для этого в 6-й тетраде используем команду 1101 – переход на адрес из регистра МК, если F3<0, иначе (F3>0) переход на следующий адрес.
Последовательность выполнения команд приведена в табл. 9.
Вычитание можно организовать следующим образом. Источники операндов R=A, S=B (001 в 4-й тетраде). Функция АЛУ: R – S – 1+Cп. Чтобы скомпенсировать вычитание единицы, записываем Сп=1. Таким образом, мы вычитаем из числа по адресу А число по адресу В.
В адресе 4 программы указываем только команду 1101 (в 6-й тетраде) – переход по флагу, а в 7-й тетраде указываем адрес 110 (6) – переход на адрес 6, если ∆1<0. Далее цикл повторяется для следующей пары чисел. В результате по адресу 4 ячейки памяти будет помещено наибольшее число из трех чисел.
Таблица 9
Нахождение наибольшего из трех чисел
-
Адрес
программы
Нахождение наибольшего из трех чисел
Адрес ячейки памяти, в которую загружается результат
0
Загрузить а1
0
1
Загрузить а2
1
2
Загрузить а3
2
3
∆1=а1 – а2; нет загрузки
4
Если ∆1<0 (а1<а2), то переход по флагу F3
5
Если ∆1>0 (а1>а2), то загрузка а1 по адресу 3
3
6
Если ∆1<0 (а1<а2), то загрузка а1 по адресу 3
3
7
Чтение по адресу 3
8
∆2=а3 – (данные по адресу 3); нет загрузки
нет загрузки
9
Если ∆2<0, то переход по фла гу F3
1 0
Если ∆2>0, то загрузить а3 по адресу 4
4
11
Если ∆2<0, то загрузить число из ячейки памяти 3 по адресу 4
4
12
Чтение по адресу 4
13
Возврат в начало