Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: i8080/8085/KP580
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
1

[KP580 эмулятор] Создание автомата Мили

14.05.2018, 18:55. Просмотров 872. Ответов 18
Метки нет (Все метки)

Нужно найти максимальное и минимальное число.
Сначала я так понимаю нужно сделать проверку на ноль.
Я думаю это можно сделать поместив в регистр А 0 и записать в ячейку памяти по адресу 8200 значение t1.
Сравнить при помощи команды CMP A,M. Если флаг Z=1 значит они равны и следует установить F(t) в 1.
Если A < M флаг СУ =1 и нам нужно записать значение в регистр или память так же следует сделать и если A>M при этом флаг АС =1.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2018, 18:55
Ответы с готовыми решениями:

[KP580 эмулятор] Составить программу для вывода на дисплей
Помогите пожалуйста. Выдать на второй индикатор символ U, если одновременно нажаты клавиши 0,1,3,...

[KP580 эмулятор] Составить программу для вывода сообщения
Помогите пожалуйста. Разработайте программу выдачи на дисплей УОУ сообщения: FLAG P-1.

[KP580 эмулятор] Записать в ячейки памяти числа в дополнительном коде
Записать числа в ячейки памяти 8200,8201 в дополнительном коде: В ячейку 8200 нужно записать число...

[KP580 эмулятор] Найти сумму 10 чисел - угадать, какой инструкции недостаёт в коде
Найти сумму 10 чисел расположенных в памяти начиная с адреса 4000 и поместить ее в регистр B ...

[Эмулятор KP580] Заменить число нулем, если оно отрицательное, увеличить на единицу в противном случае
Даны два числа (регистры В и С). Заменить число нулем, если оно отрицательное, увеличить на единицу...

18
ФедосеевПавел
14.05.2018, 22:08
  #2
 Комментарий модератора 
Согласно Правилам форума запрещено публиковать условие задания в виде изображений.
Весь текст из методички возможно скопировать и добавить BB-кодами форматирование - надстрочные и подстрочные символы.
0
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
14.05.2018, 22:17  [ТС] 3
1. Если t1 равно 0, значение f(t) устанавливается в 1;
2. Если t1 не равно 0, определяется значение f(t);
3. Если f(t) больше или равно f(t)-1 и f(t)-1 равно Δmin , f(t) устанавливается в 1;
4. Если f(t) больше или равно f(t)-1 и f(t)-1 не равно Δmin , f(t) присваивается значение f(t)-1;
5. После каждого определения f(t) или Δ осуществляется передача кода состояния автомата
на ПЭВМ.
6. После окончания работы алгоритма автомат возвращается в исходное состояние.

Используемые обозначения:
i = 1,2,..n – порядковые номера входов МПС
ti – измеряемое значение на i–м входе МПС
f(t)-1 – значение функции в предыдущий момент времени
Δmin – минимальное ненулевое число, допустимое в данной МПС
0
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,289
14.05.2018, 22:51 4
Какое-то неполное задание. Непонятно, откуда берутся ti и зачем их сравнивать с 0, да и другие манипуляции.
0
14.05.2018, 22:51
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
14.05.2018, 23:00  [ТС] 5
Нужно разработать программное обеспечение для микропроцессорной системы в виде программного автомата.
В моем случае автомат мили.
Для функции f(ti)
max(ti) - min(ti)

Добавлено через 6 минут
Текст из методички :
Программный автомат должно производить инициализацию портов МПС, принимать
информацию, поступающую с дискретных датчиков и аналогового источника, производить её
обработку, согласно варианту и передавать информацию на ПЭВМ сбора информации по
последовательному каналу связи.
0
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,289
14.05.2018, 23:19 6
А то, что вы привели ранее - описание функции f(ti).

Я не изучал или забыл "автомат Мили". Поэтому не представляю, как можно его реализовывать на чём либо.

А судя по описанию, у вас какая-то система, получающая откуда-то массив ti некоторой длины.
На основании ti и предыдущих (на предыдущем отсчёте) значений этого массива вычисляется некая функция f(ti).
Нужно найти min(fi) и max(fi).

Как бы я решал эту задачу.
1. for i:=1 to N do f[i]:=CalcF(t[i], t1[i], delta) и тут же определял минимум и максимум
2. копирование t1[1..N]:=t[1..N] для вычисления на следующем шаге

Т.е. создал бы подпрограмму для вычисления F. В неё передавал 2 (или вместе с delta - 3) параметра.
Значит нужно определить способ передачи параметров в процедуру и обратно, и работать уже с этим.
0
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
14.05.2018, 23:32  [ТС] 7
Проблема в том что это нужно реализовать на КП580.
И тут еще такой вопрос если вызывать подпрограмму например.
Или переходить при помощи JMP aa.
Не могу понять как указать аа.
аа-это адрес.

Добавлено через 8 минут
Где можно найти хотя бы маленький пример реализации подпрограммы на кп580.
0
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,289
14.05.2018, 23:53 8
В применяемом вами эмуляторе с большой долей вероятности есть и нормальный компилятор.

Или не делайте подпрограмму. Вычисляйте в цикле. То просто у меня манера - что не умещается на 1 экране кода - отправлять в процедуру.
0
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
14.05.2018, 23:58  [ТС] 9
Как задать адрес аа(a16) не подскажите.
Например для этой команды:
JMP a16 Перейти по адресу a16.
0
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,289
15.05.2018, 00:27 10
Попробовал набрать хотя бы начало функции, но остановился на
1. пункт 2 - чему равно значение f при t<>0
2. пункт 3 - откуда берётся f(ti) для сравнения с f(t)-1
Дальше уже не смотрел.

Видимо, это из теории автоматов.

Добавлено через 3 минуты
Цитата Сообщение от HeTarakan Посмотреть сообщение
Как задать адрес аа(a16)
Я не знаю о возможностях конкретно вашего эмулятора.
Задайте любое случайное и продолжайте набор программы. После завершения набора станет известен нужный адрес.

Или, если позволяет компилятор - задайте символьную метку и переход на неё
Assembler
1
2
3
4
5
  jmp MyMark
  mov a, b
  mov b, a
MyMark:
  mov b, c
0
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
15.05.2018, 07:39  [ТС] 11
Проблема в том что в данном эмуляторе записывается код команды в память.
То есть я не могу напрямую указать операнд для команды.

Добавлено через 27 минут
Возможен такой вариант для пункта 2?
Если t1 <>0 то по скольку min значение у нас отсутствует просто будет f(t)=(t1) .
0
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,289
15.05.2018, 13:13 12
Смотрите.
Я уже забыл теорию КА.
Предполагаю, что t1 - это не опечатка ti, а сигнал сброса системы, f(t) - не просто функция, а состояние системы.

КА описывается двумя таблицами. По сути, в этих правилах перечислены таблицы.

Я не могу сообразить, что там должно быть. Наверное имеет смысл подойти к преподавателю и уточнить все вопросы по теоретической части.
0
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
15.05.2018, 20:27  [ТС] 13
Я должен уточнить у преподавателя пункты 1-4?
Если можно подскажите что конкретно нужно узнать.
0
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,289
15.05.2018, 21:47 14
Вы должны самостоятельно разобраться с КА.
После этого попытаться его синтезировать.
Возникнут вопросы - их и зададите преподавателю.

Я-то тут причём? У меня свои заботы - командировка, домонтаж, холостая наладка, написание управляющих программ, наладка, а к этому готовка на вечер и следующий день, чтение документации, совещания по телефону, отсутствие выходных (прошлых и грядущих).

Я честно попробовал решить задачу с наскока (потратив 30-60 минут) - не вышло, нужно штудировать учебники, искать в интернете. В итоге - откладываю учёбу до лучших времён.

Припоминаю, что там не очень сложно. Нужно только внимательно читать.
0
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
16.05.2018, 21:17  [ТС] 15
Задание немного упростилось не нужно обращать внимание на состояния автомата.
Но к сожалению я так и не нашел как задать адрес перехода для команды jmp,call и т.д.
Указать название метки к сожалению не возможно.
0
ФедосеевПавел
Модератор
4519 / 2528 / 1019
Регистрация: 01.02.2015
Сообщений: 8,289
16.05.2018, 21:24 16
Вы можете сначала набрать код, но адреса переходов сделать равными 0.
После набора кода можно увидеть адреса, на которые должен производиться переход.
Отредактировать каждый jmp подставляя правильный адрес.

Но, с очень большой долей вероятности - вы что-то не прочли и не пользуетесь каким-то свойством среды разработки.
0
HeTarakan
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 33
17.05.2018, 07:20  [ТС] 17
Может кому то поможет.
Я слишком глупый.
Как оказалось команда занимает 3 байта в памяти.
1 байт сама команда 2 байт младший байт адреса 3 байт старший байт адреса.
0
pyzhman
1152 / 510 / 74
Регистрация: 15.05.2012
Сообщений: 2,902
17.05.2018, 12:13 18
Цитата Сообщение от HeTarakan Посмотреть сообщение
название метки к сожалению не возможно.
Можно не метку, а сразу адрес поместить. Но, как указано выше, нужно видеть весь листинг программы.
0
Lasky
0 / 0 / 0
Регистрация: 24.12.2016
Сообщений: 33
29.06.2018, 17:59 19
Слушай, а ты сделал это задание, можешь код скинуть пожалуйста, буду очень благодарен
0
29.06.2018, 17:59
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2018, 17:59

[KP580 эмулятор] Найти среднее арифметическое двух чисел - угадать, какой инструкции недостаёт в коде
найти среднее арифметическое чисел расположенных в ячейках памяти начиная с адреса #4000 записать...

[Эмулятор KP580] Сложить два числа, если полученный результат отрицательный, то его нужно заменить нулем
Дано одно число регистры В(число равно нулю) прибавить к этому числу другое число, если полученный...

Как построить граф автомата Мили по уже построенному графу автомата Мура
Подскажите как построить граф автомата Мили по уже построенному графу автомата Мура ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru