0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
1 | |
KP580 Emulator [KP580 эмулятор] Создание автомата Мили14.05.2018, 18:55. Показов 2398. Ответов 18
Метки нет (Все метки)
Нужно найти максимальное и минимальное число.
Сначала я так понимаю нужно сделать проверку на ноль. Я думаю это можно сделать поместив в регистр А 0 и записать в ячейку памяти по адресу 8200 значение t1. Сравнить при помощи команды CMP A,M. Если флаг Z=1 значит они равны и следует установить F(t) в 1. Если A < M флаг СУ =1 и нам нужно записать значение в регистр или память так же следует сделать и если A>M при этом флаг АС =1.
0
|
14.05.2018, 18:55 | |
Ответы с готовыми решениями:
18
[KP580 эмулятор] Составить программу для вывода сообщения [KP580 эмулятор] Составить программу для вывода на дисплей Записать в ячейки памяти числа в дополнительном коде [KP580 эмулятор] Найти сумму 10 чисел - угадать, какой инструкции недостаёт в коде |
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
14.05.2018, 22:17 [ТС] | 2 |
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
|
Модератор
|
|
14.05.2018, 22:51 | 3 |
Какое-то неполное задание. Непонятно, откуда берутся ti и зачем их сравнивать с 0, да и другие манипуляции.
0
|
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
14.05.2018, 23:00 [ТС] | 4 |
Нужно разработать программное обеспечение для микропроцессорной системы в виде программного автомата.
В моем случае автомат мили. Для функции f(ti) max(ti) - min(ti) Добавлено через 6 минут Текст из методички : Программный автомат должно производить инициализацию портов МПС, принимать информацию, поступающую с дискретных датчиков и аналогового источника, производить её обработку, согласно варианту и передавать информацию на ПЭВМ сбора информации по последовательному каналу связи.
0
|
Модератор
|
|
14.05.2018, 23:19 | 5 |
А то, что вы привели ранее - описание функции 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
|
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
14.05.2018, 23:32 [ТС] | 6 |
Проблема в том что это нужно реализовать на КП580.
И тут еще такой вопрос если вызывать подпрограмму например. Или переходить при помощи JMP aa. Не могу понять как указать аа. аа-это адрес. Добавлено через 8 минут Где можно найти хотя бы маленький пример реализации подпрограммы на кп580.
0
|
Модератор
|
|
14.05.2018, 23:53 | 7 |
В применяемом вами эмуляторе с большой долей вероятности есть и нормальный компилятор.
Или не делайте подпрограмму. Вычисляйте в цикле. То просто у меня манера - что не умещается на 1 экране кода - отправлять в процедуру.
0
|
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
14.05.2018, 23:58 [ТС] | 8 |
Как задать адрес аа(a16) не подскажите.
Например для этой команды: JMP a16 Перейти по адресу a16.
0
|
Модератор
|
||||||
15.05.2018, 00:27 | 9 | |||||
Попробовал набрать хотя бы начало функции, но остановился на
1. пункт 2 - чему равно значение f при t<>0 2. пункт 3 - откуда берётся f(ti) для сравнения с f(t)-1 Дальше уже не смотрел. Видимо, это из теории автоматов. Добавлено через 3 минуты Я не знаю о возможностях конкретно вашего эмулятора. Задайте любое случайное и продолжайте набор программы. После завершения набора станет известен нужный адрес. Или, если позволяет компилятор - задайте символьную метку и переход на неё
0
|
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
15.05.2018, 07:39 [ТС] | 10 |
Проблема в том что в данном эмуляторе записывается код команды в память.
То есть я не могу напрямую указать операнд для команды. Добавлено через 27 минут Возможен такой вариант для пункта 2? Если t1 <>0 то по скольку min значение у нас отсутствует просто будет f(t)=(t1) .
0
|
Модератор
|
|
15.05.2018, 13:13 | 11 |
Смотрите.
Я уже забыл теорию КА. Предполагаю, что t1 - это не опечатка ti, а сигнал сброса системы, f(t) - не просто функция, а состояние системы. КА описывается двумя таблицами. По сути, в этих правилах перечислены таблицы. Я не могу сообразить, что там должно быть. Наверное имеет смысл подойти к преподавателю и уточнить все вопросы по теоретической части.
0
|
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
15.05.2018, 20:27 [ТС] | 12 |
Я должен уточнить у преподавателя пункты 1-4?
Если можно подскажите что конкретно нужно узнать.
0
|
Модератор
|
|
15.05.2018, 21:47 | 13 |
Вы должны самостоятельно разобраться с КА.
После этого попытаться его синтезировать. Возникнут вопросы - их и зададите преподавателю. Я-то тут причём? У меня свои заботы - командировка, домонтаж, холостая наладка, написание управляющих программ, наладка, а к этому готовка на вечер и следующий день, чтение документации, совещания по телефону, отсутствие выходных (прошлых и грядущих). Я честно попробовал решить задачу с наскока (потратив 30-60 минут) - не вышло, нужно штудировать учебники, искать в интернете. В итоге - откладываю учёбу до лучших времён. Припоминаю, что там не очень сложно. Нужно только внимательно читать.
0
|
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
16.05.2018, 21:17 [ТС] | 14 |
Задание немного упростилось не нужно обращать внимание на состояния автомата.
Но к сожалению я так и не нашел как задать адрес перехода для команды jmp,call и т.д. Указать название метки к сожалению не возможно.
0
|
Модератор
|
|
16.05.2018, 21:24 | 15 |
Вы можете сначала набрать код, но адреса переходов сделать равными 0.
После набора кода можно увидеть адреса, на которые должен производиться переход. Отредактировать каждый jmp подставляя правильный адрес. Но, с очень большой долей вероятности - вы что-то не прочли и не пользуетесь каким-то свойством среды разработки.
0
|
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 35
|
|
17.05.2018, 07:20 [ТС] | 16 |
Может кому то поможет.
Я слишком глупый. Как оказалось команда занимает 3 байта в памяти. 1 байт сама команда 2 байт младший байт адреса 3 байт старший байт адреса.
0
|
1176 / 653 / 111
Регистрация: 15.05.2012
Сообщений: 4,015
|
|
17.05.2018, 12:13 | 17 |
Можно не метку, а сразу адрес поместить. Но, как указано выше, нужно видеть весь листинг программы.
0
|
0 / 0 / 0
Регистрация: 24.12.2016
Сообщений: 46
|
|
29.06.2018, 17:59 | 18 |
Слушай, а ты сделал это задание, можешь код скинуть пожалуйста, буду очень благодарен
0
|
0 / 0 / 0
Регистрация: 29.05.2020
Сообщений: 1
|
|
29.05.2020, 13:29 | 19 |
HeTarakan Мужик, ответь пожалуйста если ты сделал этот курсач. Очень нужна помощь
0
|
29.05.2020, 13:29 | |
29.05.2020, 13:29 | |
Помогаю со студенческими работами здесь
19
[KP580 эмулятор] Найти среднее арифметическое двух чисел - угадать, какой инструкции недостаёт в коде [Эмулятор KP580] Заменить число нулем, если оно отрицательное, увеличить на единицу в противном случае [Эмулятор KP580] Сложить два числа, если полученный результат отрицательный, то его нужно заменить нулем Как построить граф автомата Мили по уже построенному графу автомата Мура Структурный синтез автомата Мили! Модель автомата Мили в Матлаб Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |