Elite_Knight Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 (изменено) Помогите сориентироваться с чего начать решение вопроса. Или возможно есть уже похожие написанные программы. Нужно для микроконтроллера семейства MCS-51 составить программу, которая выполняет логическую операцию "И" над числами 5416 и 8716. Указанные числа необходимо предварительно записать в регистр R6 и R7 нулевого банка регистров, а результат операции разместить в регистр R7 второго банка регистров. Составить двоичный и шестнадцатеричный код каждой команды. Изменено 24 июня, 2017 пользователем Elite_Knight ошибка 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 (изменено) https://www.mikroe.com/mikroc/#8051 Я сам пока изучаю Си и на компьютер уже написал несколько программ. Мне кажется что для мк программа выглядеть будет так. #include <8051.h> int main (void){ register int r6=0x54, r7=0x87; r7 &= r6 ; return (0); } А микро си уже покажет коды и в ассемблере и машинных кодах. Изменено 24 июня, 2017 пользователем SDD39 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
o_l_e_g Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 28 минут назад, Elite_Knight сказал: с чего начать решение вопроса Нужно было с посещения лекций! Бери систему команд, алгоритм описан, осталось взять нужные и выстроить программу. Она займет пять-семь строк. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторовОбязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 Честно говоря микроси интересненько всё делает. Вот эту команду r7 &= r6 ; , вместо того чтоб сделать по честному , вычисляет значение 4 где то в препроцессоре , А зарем перегоняер его через 27 регистр в 7. Это у него в порядке вешей , такие фокусы? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
musa56 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 55 минут назад, SDD39 сказал: Это у него в порядке вешей , такие фокусы? А что вы хотите. Вы пишете программу на "С" а компилятор пытается команды "С" выполнить используя асемблер. К программированию на асемблере это отношения не имеет. На Асемблере вы оперируете регистрами напрямую и программа использует коды Асемблера вашего процесора. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 (изменено) 2 часа назад, musa56 сказал: К программированию на асемблере это отношения не имеет. Попробовал облегчить задачу сменив верхние регистры , на полнофункциональные 16 и 17. Код стал проще . Но всё равно та же песня с &= А вкдь по идее , вместо LDI R17, 4 Ему и надо то всего лишь прописать AND R17 , R16 Что не требует вообще ни каких усилий и даже высисления значения 4. Изменено 24 июня, 2017 пользователем SDD39 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Elite_Knight Опубликовано 24 июня, 2017 Автор Поделиться Опубликовано 24 июня, 2017 2 часа назад, o_l_e_g сказал: Нужно было с посещения лекций! Ждал вот такой комментарий. Можно по сути отвечать. Если есть кто-то знающийся в Ассемблере напишите как оно должно выглядеть структурно. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
солар Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 Прекрасно знаю. Могу написать. 0 Я не раздаю удочки. Я продаю рыбу. Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 2 часа назад, Elite_Knight сказал: Можно по сути отвечать. А по сути ,ваша задача не реализуема. По скольку у этого процессора есть только два регистра . Регистр А - аккумулятор и вспомогательный регистр В. Цитата Арифметико-логическое устройство (ALU) представляет собой параллельное восьмиразрядное устройство, обеспечивающее выполнение арифметических и логических операций. АЛУ состоит из: регистров аккумулятора, регистров временного хранения TMP1 и TMP2, ПЗУ констант, сумматора, дополнительного регистра (регистра В), аккумулятора (ACC), регистра состояния программ (PSW). Регистр аккумулятор и регистры временного хранения - восьмиразрядные регистры, предназначенные для приема и хранения операндов на время выполнения операций над ними. Эти регистры программно не доступны. ПЗУ констант обеспечивает выработку корректирующего кода при двоично-десятичном представлении данных, кода маски при битовых операциях и кода констант. Параллельный восьмиразрядный сумматор представляет собой схему комбинационного типа с последовательным переносом, предназначенную для выполнения арифметических операций сложения, вычитания и логических операций сложения, умножения, неравнозначности и тождественности. Регистр B - восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр. Аккумулятор - восьмиразрядный регистр, предназначенный для приема и хранения результата, полученного при выполнении арифметико-логических операций или операций сдвига http://www.computer-museum.ru/technlgy/proclect/mcs51/mcs_51.htm 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Elite_Knight Опубликовано 24 июня, 2017 Автор Поделиться Опубликовано 24 июня, 2017 1 минуту назад, солар сказал: Могу написать. Отлично, и все же знаний у меня не прибавится. Подскажите пожалуйста тогда с чего это все начинается. Там что-то сперва заносим в аккумулятор? Используем именно здесь команду ANL? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 Я не знаю где вы физически возьмёте регистры 6 и 7 . Но выглядит так. Значение регмстра 7 помещаете в аккумулятор . значение регистра 6 в регистр В Проводите операцию И между А и В Ну и перемещаете аккумулятор в регистр 7 . Да в начале надо еще число 0х54 записать в аккумуятор , затем поместить значение в регистр 6 то же самое со вторым числом 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 24 минуты назад, SDD39 сказал: только два регистра Гораздо больше. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 2 часа назад, o_l_e_g сказал: Гораздо больше. Разве у него ядро не Z80 го? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 1 минуту назад, SDD39 сказал: Z80 го? нет. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 А судя по описанию то же самое. http://www.computer-museum.ru/technlgy/proclect/mcs51/mcs_51.htm 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 У них, даже архитектура разная Фон Нейман и Гарвард. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 За то принцип работы через аккумулятор один и тот же. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 Только что, SDD39 сказал: через аккумулятор Опять нет. Спокойненько пишем ANL R6,R7 И даже, спокойно можно пихнуть данные не переключая банки регистров, во второй банк. 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 2 часа назад, o_l_e_g сказал: койненько пишем ANL R6,R7 По этой ссылке получается что можем http://www.gaw.ru/html.cgi/txt/doc/micros/mcs51/arh/mem.htm А по этой не можем http://www.computer-museum.ru/technlgy/proclect/mcs51/mcs_51.htm И чему верить ? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 9 минут назад, SDD39 сказал: И чему верить ? Компилятору! Сори, один операнд, всё же должен быть А. Правильно ANL A, R7 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 2 часа назад, o_l_e_g сказал: Компилятору! Так я же его и предлагал в самом первом посту.))) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Elite_Knight Опубликовано 24 июня, 2017 Автор Поделиться Опубликовано 24 июня, 2017 Джентельмены, я конечно рад что вы нашли общий язык, и при этом не тяните кота за хвост -- скажите код раз все ясно! 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
o_l_e_g Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 2 минуты назад, Elite_Knight сказал: скажите код раз А ключи от квартиры? Сам то, хоть попытайся! 0 Errare humanum est. Коли людЯм позволено, что же о нас то говорить! Ссылка на комментарий Поделиться на другие сайты Поделиться
Elite_Knight Опубликовано 24 июня, 2017 Автор Поделиться Опубликовано 24 июня, 2017 Ладно, это будет началом? mov R6, 36h mov R7, 57h anl A, R7 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
SDD39 Опубликовано 24 июня, 2017 Поделиться Опубликовано 24 июня, 2017 Через аккумулятор надо MOV A , 36H MOV R6 , A MOV A , 57 ANL A , R6 MOV R7 , A 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.